O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Полуавтоматизация Third-party
API или избавляемся от лишних
зависимостей
Елена Бычкова, специалист по тестированию
http://amigo.mail.ru
Социальный браузер
Социальный плагин, использующий
Third-party API
Проблемы
 Долго и утомительно
 Много однообразных действий
И так каждый регресс.
Цена ошибки довольно высока, поскольку ...
Автоматизация – почему нет?
 Число обращений к API соцсетей ограничено
 Это не классический веб, это браузерные расширен...
Полуавтоматизация: как это устроено?
Запрос к API/somePath
Ответ заглушкой
Сравнивает запрос к API
с шаблоном
Шаблон запро...
Предварительные настройки среды
• Сохраняем ответы API в виде json-файлов
• Ставим браузер Google Chrome + расширение DHC ...
Алгоритм действий
• Перенаправляем API на localhost
• Запускаем Mockserver
• Запускаем расширение DHC
• Посылаем запросы к...
Необходимые инструменты
• Java
• Mockserver
• Google Chrome + расширение DHC
• Notepad++
• Fiddler
DEV HTTP Client
DEV HTTP Client: Request
"httpRequest": {
"method" : "GET",
"path" : "/fb.do",
"queryStringParameters" : [ ],
"headers" : ...
DEV HTTP Client: Response
"httpResponse": {
"statusCode": 200,
"headers": [ {
"name": "Content-Type",
"values": ["applicat...
DEV HTTP Client: плохой ответ
"httpResponse": {
"statusCode": 404,
"headers": [{
"name": "Content-Type",
"values": ["appli...
DEV HTTP Client: результат
DEV HTTP Client: портирование
Полуавтоматизация – почему да?
 По сравнению с полной автоматизацией – простота
 Облегчение жизни ручному тестировщику
...
Какие минусы?
Проблема с API, использующими механизм форсированного
защищённого протокола hsts
Решение:
Флаг командной стр...
Какие минусы?
Игнорирование возможных внезапных изменений в сторонних API
Решение:
Отдельные тесты для API с помощью прило...
Postman
 MockServer – http://www.mock-server.com/
 DEV HTTP Client – https://dhc.restlet.com/
 Postman – https://www.getpostman...
Спасибо за внимание!
Próximos SlideShares
Carregando em…5
×

Полуавтоматизация third-party API

1.571 visualizações

Publicada em

Доклад Елены Бычковой на конференции SQA Days-19, 20-21 мая 2016 г., Санкт-Петербург

Publicada em: Educação
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Полуавтоматизация third-party API

  1. 1. Полуавтоматизация Third-party API или избавляемся от лишних зависимостей Елена Бычкова, специалист по тестированию
  2. 2. http://amigo.mail.ru Социальный браузер
  3. 3. Социальный плагин, использующий Third-party API
  4. 4. Проблемы  Долго и утомительно  Много однообразных действий И так каждый регресс. Цена ошибки довольно высока, поскольку это одна из ключевых функциональностей браузера.
  5. 5. Автоматизация – почему нет?  Число обращений к API соцсетей ограничено  Это не классический веб, это браузерные расширения  Потребует большого ресёрча и времени автоматизатора.
  6. 6. Полуавтоматизация: как это устроено? Запрос к API/somePath Ответ заглушкой Сравнивает запрос к API с шаблоном Шаблон запроса 'httpRequest': { 'method': 'POST', 'path': '/somePath', 'body': {} }, 'httpResponse': { 'statusCode': 200, 'body': { } }
  7. 7. Предварительные настройки среды • Сохраняем ответы API в виде json-файлов • Ставим браузер Google Chrome + расширение DHC (Dev HTTP Client) • Ставим java + mockserver • Помещаем заглушки в расширение DHC и сохраняем их там в виде проекта
  8. 8. Алгоритм действий • Перенаправляем API на localhost • Запускаем Mockserver • Запускаем расширение DHC • Посылаем запросы к API • Смотрим результат
  9. 9. Необходимые инструменты • Java • Mockserver • Google Chrome + расширение DHC • Notepad++ • Fiddler
  10. 10. DEV HTTP Client
  11. 11. DEV HTTP Client: Request "httpRequest": { "method" : "GET", "path" : "/fb.do", "queryStringParameters" : [ ], "headers" : [ { "name" : "Host", "values" : [ "api.odnoklassniki.ru" ] }] }
  12. 12. DEV HTTP Client: Response "httpResponse": { "statusCode": 200, "headers": [ { "name": "Content-Type", "values": ["application/json; charset=utf-8"] }, { "name": "Cache-Control", "values": ["no-store"] }], "body": " }
  13. 13. DEV HTTP Client: плохой ответ "httpResponse": { "statusCode": 404, "headers": [{ "name": "Content-Type", "values": ["application/json; charset=utf-8"] }, { "name": "Cache-Control", "values": ["no-store"] }], "body": "" }
  14. 14. DEV HTTP Client: результат
  15. 15. DEV HTTP Client: портирование
  16. 16. Полуавтоматизация – почему да?  По сравнению с полной автоматизацией – простота  Облегчение жизни ручному тестировщику  Сокращение сроков тестирования: 2 дня vs 2 часа  Возможность генерировать самые разные ответы сервера, в том числе, и невалидные  Легко портируемо
  17. 17. Какие минусы? Проблема с API, использующими механизм форсированного защищённого протокола hsts Решение: Флаг командной строки --ignore-certificate-errors для Google Chrome
  18. 18. Какие минусы? Игнорирование возможных внезапных изменений в сторонних API Решение: Отдельные тесты для API с помощью приложения Postman для Google Chrome
  19. 19. Postman
  20. 20.  MockServer – http://www.mock-server.com/  DEV HTTP Client – https://dhc.restlet.com/  Postman – https://www.getpostman.com/  Amigo – https://amigo.mail.ru Полезные ссылки
  21. 21. Спасибо за внимание!

×