t.me/atinfo_chat Telegram группа по автоматизации тестирования

Есть ли вариант замокать реквест к серверу

pytest
python
selenium
appium
Теги: #<Tag:0x00007f21de22b378> #<Tag:0x00007f21de22af90> #<Tag:0x00007f21de22ac70> #<Tag:0x00007f21de22a928>

(at_sergei) #1

Привет всем,

Сталкнулся с проблемой, при регистрации нового пользователя на мобиле.
Экраны для регистраци такие:

  1. указать номер телефона
  2. ввести данные платежной карточки -> возращает id
  3. Заполнить username и password -> нажимаешь готово -> на бэкэнд отправляется реквест содержащий в себе: username, password и уникальный id (из предыдущего шага)
  4. одноразовый пароль с смс
  5. Ок

Мне надо, как-то, подменить в реквесте этот уникальный id(чтобы можно было использовать карточку много раз)
Это UI тест


(Julian Kolodzey) #2

Если устройство - эмулятор / симулятор на компе, малой кровью, можно попробовать Fiddler.


#3

Есть. http://wiremock.org
С мобилами попроще - можете сами собирать билды, которые будут смотреть не на реальный сервер, а на wiremock, а уже wiremock в свою очередь на реальный сервер. Можно настраивать какие запросы мокать, какие нет, в рантайме добавлять и убирать моки.
С вебом я таким не занимался, вероятно тут уже понадобится отдельное окружение которое будет на wiremock смотреть.

Модифицировать запрос вроде бы скоро будет возможно, по крайней мере обещают https://github.com/tomakehurst/wiremock/issues/1147

Есть еще аналог http://www.mock-server.com/, по описанию он вроде даже лучше, но я им не пользовался

Только при работе с моками надо не забывать что если бэкэнд поменяет вдруг контракт апишки, то ваши тесты это не отловят) поэтому мы отдельно еще пишем на такие места контрактные апи тесты, которые проверяют не функциональность апишки (на функциональность отдельные тесты), а формат респонса - что все нужные для приложения присутствуют и имеют необходимый тир данных (число, массив етс.). https://assertible.com/blog/testing-and-validating-api-responses-with-json-schema


(at_sergei) #4

Спасибо большое за совет, буду пробовать.


(at_sergei) #5

Тесты запускаются еще и на сауслабе


(Julian Kolodzey) #6

Я так понимаю, для проектной работы наиболее предпочтительный вариант - запуск на докере?


(at_sergei) #7

Да, лучше на докере