Регулярные выражения и тестирование pdf отчетов
TRANSCRIPT
![Page 1: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/1.jpg)
Regular Expressions and Testing PDF ReportsРегулярные выражение и тестирование PDF-отчетов
Роман ГрищенкоGrid Dynamics Intl.Краков, Польша
![Page 2: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/2.jpg)
Содержание
1. Где мы встречаемся с PDF отчетами?2. Зачем нужно тестировать PDF отчеты?3. Способы парсинга PDF отчетов4. Типичная архитектура автотестов для тестирования PDF отчетов5. Как извлечь данные из PDF с помощью регулярных выражений (RegExp)6. Что можно и что нельзя проверить с помощью RegExp7. Q&A
![Page 3: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/3.jpg)
Где мы встречаемся с PDF отчетами?
- Различный финансовые отчеты, например движение средств по счету- Любые виды подтверждения произведенных операций, например
покупки билетов, полученное на email либо через иную систему- Предоставление разнообразной коммерческой информации: расписание
рейсов, бухгалтерские отчеты итд.
![Page 4: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/4.jpg)
Почему нужно тестировать PDF отчеты?
1. Генератор PDF может интегрироваться с многими внешними сервисами или базами данных -> высока вероятность интеграционных дефектов
2. Генератор PDF обрабатывает полученные извне данные -> вероятны проблемы с менеджментом собранной информации
3. Дополнительная логика или вычисления могут быть реализованы внутри сервиса, где также могут быть допущены ошибки
4. Вас попросил заказчик :)
![Page 5: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/5.jpg)
Способы парсинга 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 20SQA Days \d{2}
![Page 6: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/6.jpg)
Типичная структура автотестов для тестирования PDF отчетов
Менеджмент ожидаемых данных
Получение PDF отчета
Обработка PDF отчета
Проверка данных
Исходные данные / ожидаемые значения
![Page 7: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/7.jpg)
Как извлечь данные из PDF с помощью регулярных выражений (RegExp)
1. Преобразовать PDF файл в текст2. Применить регулярные выражения и получить коллекцию совпадений 3. Обработать совпадения и сформировать объектную модель отчета
![Page 8: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/8.jpg)
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 NameAccount number: 00 1111 2222 3333 4444Period: 9/1/2016 - 31/10/2016
Created by User Name on 21/11/2016
![Page 9: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/9.jpg)
Money Movement ReportClient: Client NameAccount number: 00 1111 2222 3333 4444Period: 9/1/2016 - 31/10/2016Transaction Description Transaction Transaction Amount,Date USDSQA Days registration fee 9/7/2016 -200.00Hotel reservation 9/31/2016 -150.50Flight tickets Krakow-Minsk-Krakow 10/21/2016 -300.00Business trip compensation 30/10/2016 1,050.00Total 399.50Created by User Name on 21/11/2016
![Page 10: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/10.jpg)
Пример парсинга
Client: Client NameClient: (?<clientName>.*)
Account number: 00 1111 2222 3333 4444Account number: (?<accountNumber>\d{2}( \d{4}){4})
Period: 9/1/2016 - 31/10/2016Period: (?<fromDate>\d{1,2}\/\d{1,2}\/\d{4}) - (?<toDate>\d{1,2}\/\d{1,2}\/\d{4})
![Page 11: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/11.jpg)
![Page 12: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/12.jpg)
![Page 13: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/13.jpg)
Что можно и что нельзя проверить с помощью RegExp
Можно Нельзя
Текст Шрифты/цвета
Значения Выравнивание текста и отступы
Структуры данных Графические элементы
![Page 14: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/14.jpg)
Q&A
![Page 15: Регулярные выражения и тестирование Pdf отчетов](https://reader033.vdocuments.net/reader033/viewer/2022042611/5872cde91a28ab74188b4761/html5/thumbnails/15.jpg)
Ссылки и контактыРуководство по регулярным выражениям 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 [email protected]