Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Полуавтоматизация 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...
Спасибо за внимание!
Upcoming SlideShare
Loading in …5
×

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

1,521 views

Published on

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

Published in: Education
  • Be the first to comment

  • Be the first to like this

Полуавтоматизация 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. Спасибо за внимание!

×