SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
QA Meetup
Best 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
● генерировать данные
● разбивать тесты по категориям и
критичности
● проверять внешние сервисы
● следить за состоянием тестов
Контакты:
email: anton.gupalenko@donriver.
com
skype: anton_gup
Email: resume_rus@donriver.com

Contenu connexe

En vedette

Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
Mairbek Khadikov
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
automated-testing.info
 
Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1
LuxoftTraining
 
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QAFest
 

En vedette (20)

Belajar Postman test runner
Belajar Postman test runnerBelajar Postman test runner
Belajar Postman test runner
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
 
Защита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.org
Защита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.orgЗащита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.org
Защита веб-ресурса от DDoS-атак на примере нашего клиента - Rutracker.org
 
Scrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачиScrum глазами тестировщика или как создать стратегию для любой задачи
Scrum глазами тестировщика или как создать стратегию для любой задачи
 
Советы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложенийСоветы для успешной автоматизации тестирования веб-приложений
Советы для успешной автоматизации тестирования веб-приложений
 
Автотесты на уровне API для Java-приложений
Автотесты на уровне API для Java-приложенийАвтотесты на уровне API для Java-приложений
Автотесты на уровне API для Java-приложений
 
В поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UIВ поисках магической кнопки или как приручить SOAP UI
В поисках магической кнопки или как приручить SOAP UI
 
QA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходов
QA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходовQA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходов
QA Fes 2016. Роман Якимчук. Продвинутое тестирование состояний и переходов
 
Будни тестирования Cassandr-ы
Будни тестирования Cassandr-ыБудни тестирования Cassandr-ы
Будни тестирования Cassandr-ы
 
Простой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипедПростой взгляд на автоматизацию или Как не изобретать велосипед
Простой взгляд на автоматизацию или Как не изобретать велосипед
 
Автоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UIАвтоматизация тестирования веб-сервисов посредством SOAP UI
Автоматизация тестирования веб-сервисов посредством SOAP UI
 
Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1Концепция построения процесса тестирования в Agile проектах: 3+1
Концепция построения процесса тестирования в Agile проектах: 3+1
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшeQA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
QA Fes 2016. Алексей Виноградов. Page Objects: лучше проще, да лучшe
 
User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?User Interface Тестирование – все ли так просто?
User Interface Тестирование – все ли так просто?
 
Тестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QAТестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QA
 
Automated UI Testing
Automated UI TestingAutomated UI Testing
Automated UI Testing
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайниковQA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
 
API Code Generation
API Code GenerationAPI Code Generation
API Code Generation
 
Kiss PageObjects [01-2017]
Kiss PageObjects [01-2017]Kiss PageObjects [01-2017]
Kiss PageObjects [01-2017]
 

Plus de IT61

Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)
IT61
 

Plus de IT61 (20)

Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
Александр Шорин - Как перестать гоняться за кандидатом и начать жить?
 
Нина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своихНина Марменкова - Найти себя и нАЙТИ своих
Нина Марменкова - Найти себя и нАЙТИ своих
 
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...Павел Седаков - Performance review: теория и практика оценки эффективности ра...
Павел Седаков - Performance review: теория и практика оценки эффективности ра...
 
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджераДмитрий Костюк - Необходимые инструменты и качества для роста менеджера
Дмитрий Костюк - Необходимые инструменты и качества для роста менеджера
 
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
Константин Гуфан - Чем должны заниматься менеджеры и чем они на самом деле за...
 
Ольга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущегоОльга Стратанович - Менеджер будущего
Ольга Стратанович - Менеджер будущего
 
Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?Константин Гуфан - Сколько лет живет любовь к работе?
Константин Гуфан - Сколько лет живет любовь к работе?
 
Организация тестирования в Inostudio
Организация тестирования в InostudioОрганизация тестирования в Inostudio
Организация тестирования в Inostudio
 
Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?Нагрузочное тестирование API. Как летать, а не ползать?
Нагрузочное тестирование API. Как летать, а не ползать?
 
Calabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложенийCalabash. Автоматизированное тестирование мобильных приложений
Calabash. Автоматизированное тестирование мобильных приложений
 
Особенности тестирования мобильных приложений
Особенности тестирования мобильных приложенийОсобенности тестирования мобильных приложений
Особенности тестирования мобильных приложений
 
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп АвакянMachine learning на примере алгоритма ценообразования, Овсеп Авакян
Machine learning на примере алгоритма ценообразования, Овсеп Авакян
 
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий ЛапинMachine learning c использованием нейронных сетей, Дмитрий Лапин
Machine learning c использованием нейронных сетей, Дмитрий Лапин
 
Изоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем МоскалецИзоморфизм как предметное поле data science, Артем Москалец
Изоморфизм как предметное поле data science, Артем Москалец
 
Data scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей КазаковData scientology starter pack, Сергей Казаков
Data scientology starter pack, Сергей Казаков
 
Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)Параллельное управление, Елена Сибилева (Жмек дизайн)
Параллельное управление, Елена Сибилева (Жмек дизайн)
 
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
Эффективный отдел техподдержки сайтов без вашего участия, Максим Мул (Рабочие...
 
Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)Тренды в процессах разработки, Константин Иванов (TradingView)
Тренды в процессах разработки, Константин Иванов (TradingView)
 
Амина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожуАмина Прима - Ой, все! Я ухожу
Амина Прима - Ой, все! Я ухожу
 
Основы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.xОсновы Symfony и отличия Sf 3.x от Sf 2.x
Основы Symfony и отличия Sf 3.x от Sf 2.x
 

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

  • 1. QA Meetup Best practices тестирования API Гупаленко Антон
  • 2. DreamPayments.com Мы тестируем back end: ● управление пользователями ● проведение платежей ● взаимодействие с банками ● финансовые операции ● активация и управление терминалом ● каталог продуктов ● отчеты и статистика
  • 4. Принципы при проверки API: ● API поддерживает требуемые сценарии ● запрос API удовлетворяет спецификации ● валидация ответа на полноту данных ● валидация корректности данных в ответе
  • 5. Принципы при проверки API: ● валидация изменений в DB ● проверка работы внешних сервисов ● это не unit тесты
  • 6.
  • 7. ● используем groovy для автоматизации заполнения запросов и проверки ответов ● используем groovy и db2 jdbc для написания проверок в базе ● механизм переиспользования кейсов ● взаимодействие с внешними системами (e-mail, sftp)
  • 8. Плюсы: ● простота разработки тест кейсов ● наглядность при работе в запросами и ответами ● возможность быстро использовать созданные кейсы ● возможность использовать groovy и сторонние библиотеки ● возможность проверки без написания теста
  • 9. Минусы: ● скорость работы и потребление ресурсов ● сложность подготовки проверок ● переиспользование возможно, но требует больших усилий ● отсутствие удобного IDE
  • 10. Проблемы, с которыми мы столкнулись: ● переиспользование flow целиком ● механизмы для проверок находились в разных местах, их трудно структурировать ● при запуске тестов трудно понять, что конкретно поломано API или сам тест
  • 11. Проблемы, с которыми мы столкнулись: ● поддержка тестов командой становиться все труднее ● не возможно работать над одним кейсом совместно ● трудно собирать статистику по прогону теста Количество тестов: 5000, время полного прогона 18 часов
  • 12. Решения проблем: ● создали DataGenerator и постарались максимально отойти от переиспользования flow ● все имеющие проверки базы данных перенесли в groovy библиотеку ● создали новый фреймворк с использованием JAVA + jUnit
  • 14. Что есть в фреймворке: ● Java и jUnit ● объекты реквестов и реплаев из кода ● валидатор проверяет весь ответ ● DataGenerator, пул различных данных ● шаблоны тестов для типичных проверок ● e-mail валидатор ● Allure, как средство построения отчетов
  • 15. Плюсы: ● гибкость при разработке тестов ● понятная структура тестов и вспомогательных методов ● возможность параллельного запуска тестов ● возможность категоризировать тесты ● помощь DEV команды, как при разработке фреймворка, так и при написании тестов Количество тестов: 4000, время полного прогона 4 часа
  • 16. Минусы: ● выше порог вхождения ● наглядность тестов падает ● нет возможности вручную проверить API ● контроль за кодом тестов
  • 17. Best practice: ● проверять все поля полученные в ответе ● не переиспользовать flow ● генерировать данные ● разбивать тесты по категориям и критичности ● проверять внешние сервисы ● следить за состоянием тестов