Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Регулярные выражения и тестирование Pdf отчетов

Доклад Романа Грищенко на конференции SQA Days-20. 24-26 ноября 2016. Минск
www.sqadays.com

  • Inicia sesión para ver los comentarios

  • Sé el primero en recomendar esto

Регулярные выражения и тестирование Pdf отчетов

  1. 1. Regular Expressions and Testing PDF Reports Регулярные выражение и тестирование PDF- отчетов Роман Грищенко Grid Dynamics Intl. Краков, Польша
  2. 2. Содержание 1. Где мы встречаемся с PDF отчетами? 2. Зачем нужно тестировать PDF отчеты? 3. Способы парсинга PDF отчетов 4. Типичная архитектура автотестов для тестирования PDF отчетов 5. Как извлечь данные из PDF с помощью регулярных выражений (RegExp) 6. Что можно и что нельзя проверить с помощью RegExp 7. Q&A
  3. 3. Где мы встречаемся с PDF отчетами? - Различный финансовые отчеты, например движение средств по счету - Любые виды подтверждения произведенных операций, например покупки билетов, полученное на email либо через иную систему - Предоставление разнообразной коммерческой информации: расписание рейсов, бухгалтерские отчеты итд.
  4. 4. Почему нужно тестировать PDF отчеты? 1. Генератор PDF может интегрироваться с многими внешними сервисами или базами данных -> высока вероятность интеграционных дефектов 2. Генератор PDF обрабатывает полученные извне данные -> вероятны проблемы с менеджментом собранной информации 3. Дополнительная логика или вычисления могут быть реализованы внутри сервиса, где также могут быть допущены ошибки 4. Вас попросил заказчик :)
  5. 5. Способы парсинга PDF отчетов Вручную Автоматически Оптическое распознавание символов (OCR) PDF => HTML/XML Регулярные выражения (RegExp) Return symbols and their coordinates <div style="...">SQA </div> <div style="...">Days </div> <div style="...">20 </div> SQA Days 20 SQA Days d{2}
  6. 6. Типичная структура автотестов для тестирования PDF отчетов Менеджмент ожидаемых данных Получение PDF отчета Обработка PDF отчета Проверка данных Исходные данные / ожидаемые значения
  7. 7. Как извлечь данные из PDF с помощью регулярных выражений (RegExp) 1. Преобразовать PDF файл в текст 2. Применить регулярные выражения и получить коллекцию совпадений 3. Обработать совпадения и сформировать объектную модель отчета
  8. 8. Transaction Description Transaction Date Transaction Amount, USD SQA Days registration fee 9/7/2016 -200.00 Hotel reservation 9/31/2016 -150.50 Flight tickets Krakow-Minsk-Krakow 10/21/2016 -300.00 Business trip compensation 30/10/2016 1,050.00 Total 399.50 Money Movement Report Client: Client Name Account number: 00 1111 2222 3333 4444 Period: 9/1/2016 - 31/10/2016 Created by User Name on 21/11/2016
  9. 9. Money Movement Report Client: Client Name Account number: 00 1111 2222 3333 4444 Period: 9/1/2016 - 31/10/2016 Transaction Description Transaction Transaction Amount, Date USD SQA Days registration fee 9/7/2016 -200.00 Hotel reservation 9/31/2016 -150.50 Flight tickets Krakow-Minsk-Krakow 10/21/2016 -300.00 Business trip compensation 30/10/2016 1,050.00 Total 399.50 Created by User Name on 21/11/2016
  10. 10. Пример парсинга Client: Client Name Client: (?<clientName>.*) Account number: 00 1111 2222 3333 4444 Account number: (?<accountNumber>d{2}( d{4}){4}) Period: 9/1/2016 - 31/10/2016 Period: (?<fromDate>d{1,2}/d{1,2}/d{4}) - (?<toDate>d{1,2}/d{1,2}/d{4})
  11. 11. Что можно и что нельзя проверить с помощью RegExp Можно Нельзя Текст Шрифты/цвета Значения Выравнивание текста и отступы Структуры данных Графические элементы
  12. 12. Q&A
  13. 13. Ссылки и контакты Руководство по регулярным выражениям http://www.regular-expressions.info/tutorial.html RegExp-тестер https://regex101.com/ Проект в GitHub с примерами использования RegExp для тестирования PDF отчета https://github.com/panromek/pdf-testing Контакты: - facebook https://www.facebook.com/roman.gryshchenko - linkedin https://ua.linkedin.com/in/roman-gryshchenko-042a0780 - email rgrishchenko@griddynamics.com

×