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

15
Regular Expressions and Testing PDF Reports Регулярные выражение и тестирование PDF- отчетов Роман Грищенко Grid Dynamics Intl. Краков, Польша

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

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

Regular Expressions and Testing PDF ReportsРегулярные выражение и тестирование PDF-отчетов

Роман ГрищенкоGrid Dynamics Intl.Краков, Польша

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

Содержание

1. Где мы встречаемся с PDF отчетами?2. Зачем нужно тестировать PDF отчеты?3. Способы парсинга PDF отчетов4. Типичная архитектура автотестов для тестирования PDF отчетов5. Как извлечь данные из PDF с помощью регулярных выражений (RegExp)6. Что можно и что нельзя проверить с помощью RegExp7. Q&A

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

Где мы встречаемся с PDF отчетами?

- Различный финансовые отчеты, например движение средств по счету- Любые виды подтверждения произведенных операций, например

покупки билетов, полученное на email либо через иную систему- Предоставление разнообразной коммерческой информации: расписание

рейсов, бухгалтерские отчеты итд.

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

Почему нужно тестировать PDF отчеты?

1. Генератор PDF может интегрироваться с многими внешними сервисами или базами данных -> высока вероятность интеграционных дефектов

2. Генератор PDF обрабатывает полученные извне данные -> вероятны проблемы с менеджментом собранной информации

3. Дополнительная логика или вычисления могут быть реализованы внутри сервиса, где также могут быть допущены ошибки

4. Вас попросил заказчик :)

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

Способы парсинга 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 отчетов

Типичная структура автотестов для тестирования PDF отчетов

Менеджмент ожидаемых данных

Получение PDF отчета

Обработка PDF отчета

Проверка данных

Исходные данные / ожидаемые значения

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

Как извлечь данные из PDF с помощью регулярных выражений (RegExp)

1. Преобразовать PDF файл в текст2. Применить регулярные выражения и получить коллекцию совпадений 3. Обработать совпадения и сформировать объектную модель отчета

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

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 отчетов

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 отчетов

Пример парсинга

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 отчетов
Page 12: Регулярные выражения и тестирование Pdf отчетов
Page 13: Регулярные выражения и тестирование Pdf отчетов

Что можно и что нельзя проверить с помощью RegExp

Можно Нельзя

Текст Шрифты/цвета

Значения Выравнивание текста и отступы

Структуры данных Графические элементы

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

Q&A

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

Ссылки и контактыРуководство по регулярным выражениям 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]