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

Привет всем,

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

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

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

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

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

Модифицировать запрос вроде бы скоро будет возможно, по крайней мере обещают Feature Request: Alter original HTTP Request · Issue #1147 · wiremock/wiremock · GitHub

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

Только при работе с моками надо не забывать что если бэкэнд поменяет вдруг контракт апишки, то ваши тесты это не отловят) поэтому мы отдельно еще пишем на такие места контрактные апи тесты, которые проверяют не функциональность апишки (на функциональность отдельные тесты), а формат респонса - что все нужные для приложения присутствуют и имеют необходимый тир данных (число, массив етс.). Testing and validating API responses with JSON Schema : Assertible

1 лайк

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

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

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

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