Best practices тестирования API

18
QA Meetup Best practices тестирования API Гупаленко Антон

Transcript of Best practices тестирования API

QA MeetupBest practices тестирования API

Гупаленко Антон

DreamPayments.com Мы тестируем back end:

● управление пользователями● проведение платежей● взаимодействие с банками● финансовые операции● активация и управление терминалом● каталог продуктов● отчеты и статистика

Стек технологий

взаимодействие с front end через SOAP и REST

Принципы при проверки API:● API поддерживает требуемые сценарии● запрос API удовлетворяет спецификации● валидация ответа на полноту данных ● валидация корректности данных в ответе

Принципы при проверки API:● валидация изменений в DB● проверка работы внешних сервисов● это не unit тесты

● используем groovy для автоматизации заполнения запросов и проверки ответов

● используем groovy и db2 jdbc для написания проверок в базе

● механизм переиспользования кейсов● взаимодействие с внешними системами (e-mail, sftp)

Плюсы:

● простота разработки тест кейсов● наглядность при работе в запросами и ответами● возможность быстро использовать созданные кейсы● возможность использовать groovy и сторонние

библиотеки● возможность проверки без написания теста

Минусы: ● скорость работы и потребление ресурсов● сложность подготовки проверок● переиспользование возможно, но требует больших

усилий● отсутствие удобного IDE

Проблемы, с которыми мы столкнулись:

● переиспользование flow целиком● механизмы для проверок находились в разных местах,

их трудно структурировать● при запуске тестов трудно понять, что конкретно

поломано API или сам тест

Проблемы, с которыми мы столкнулись:

● поддержка тестов командой становиться все труднее● не возможно работать над одним кейсом совместно● трудно собирать статистику по прогону теста

Количество тестов: 5000, время полного прогона 18 часов

Решения проблем:● создали DataGenerator и постарались максимально

отойти от переиспользования flow● все имеющие проверки базы данных перенесли в

groovy библиотеку● создали новый фреймворк с использованием JAVA +

jUnit

Java фреймворк

Что есть в фреймворке:● Java и jUnit● объекты реквестов и реплаев из кода● валидатор проверяет весь ответ● DataGenerator, пул различных данных● шаблоны тестов для типичных проверок● e-mail валидатор● Allure, как средство построения отчетов

Плюсы:● гибкость при разработке тестов● понятная структура тестов и вспомогательных

методов● возможность параллельного запуска тестов● возможность категоризировать тесты● помощь DEV команды, как при разработке

фреймворка, так и при написании тестов

Количество тестов: 4000, время полного прогона 4 часа

Минусы:● выше порог вхождения● наглядность тестов падает● нет возможности вручную проверить API● контроль за кодом тестов

Best practice:

● проверять все поля полученные в ответе● не переиспользовать flow● генерировать данные● разбивать тесты по категориям и

критичности● проверять внешние сервисы● следить за состоянием тестов