От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Регулярные выражения и тестирование Pdf отчетов
1. Regular Expressions and
Testing PDF Reports
Регулярные выражение и тестирование PDF-
отчетов
Роман Грищенко
Grid Dynamics Intl.
Краков, Польша
2. Содержание
1. Где мы встречаемся с PDF отчетами?
2. Зачем нужно тестировать PDF отчеты?
3. Способы парсинга PDF отчетов
4. Типичная архитектура автотестов для тестирования PDF отчетов
5. Как извлечь данные из PDF с помощью регулярных выражений (RegExp)
6. Что можно и что нельзя проверить с помощью RegExp
7. Q&A
3. Где мы встречаемся с PDF отчетами?
- Различный финансовые отчеты, например движение средств по счету
- Любые виды подтверждения произведенных операций, например
покупки билетов, полученное на email либо через иную систему
- Предоставление разнообразной коммерческой информации: расписание
рейсов, бухгалтерские отчеты итд.
4. Почему нужно тестировать PDF отчеты?
1. Генератор PDF может интегрироваться с многими внешними сервисами
или базами данных -> высока вероятность интеграционных дефектов
2. Генератор PDF обрабатывает полученные извне данные -> вероятны
проблемы с менеджментом собранной информации
3. Дополнительная логика или вычисления могут быть реализованы внутри
сервиса, где также могут быть допущены ошибки
4. Вас попросил заказчик :)
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. Типичная структура автотестов для
тестирования PDF отчетов
Менеджмент ожидаемых данных
Получение PDF отчета
Обработка PDF отчета
Проверка данных
Исходные данные / ожидаемые значения
7. Как извлечь данные из PDF с помощью
регулярных выражений (RegExp)
1. Преобразовать PDF файл в текст
2. Применить регулярные выражения и получить коллекцию совпадений
3. Обработать совпадения и сформировать объектную модель отчета
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. 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
13. Что можно и что нельзя проверить с
помощью RegExp
Можно Нельзя
Текст Шрифты/цвета
Значения Выравнивание текста и отступы
Структуры данных Графические элементы
15. Ссылки и контакты
Руководство по регулярным выражениям 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