best practices тестирования api

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

Upload: it61

Post on 19-Feb-2017

143 views

Category:

Software


2 download

TRANSCRIPT

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● генерировать данные● разбивать тесты по категориям и

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