Какие инструменты используются для подмены запросов
Что проверяют
Умеете ли вы проверить клиент в ситуациях, которые на реальном бэкенде воспроизвести трудно: ошибка 500, пустой список, медленная сеть, лишнее поле. Интервьюер хочет услышать разницу между перехватом трафика и моками в автотестах. Следом обычно спрашивают, как перехватить HTTPS с телефона.
Как отвечать
Прокси для ручного тестирования:
- Charles Proxy:
Map Localотдаёт ответ из файла,Map Remoteперенаправляет на другой сервер,Rewriteменяет заголовки и тело,Breakpointsпозволяют править запрос на лету,Throttlingэмулирует плохую сеть; - Fiddler: классика на Windows, подмена ответов через AutoResponder;
- mitmproxy: открытый, сценарии подмены пишутся на Python, легко встраивается в автоматизацию;
- Proxyman: удобная альтернатива Charles на macOS;
- Burp Suite: перехват и повтор запросов для проверок безопасности, подмена параметров и идентификаторов.
Моки в автотестах:
- Playwright:
page.route()сroute.fulfill()отдаёт свой ответ,route.abort()роняет запрос; - Cypress:
cy.intercept()со стабом ответа; - WireMock или MockServer: отдельный сервер-заглушка с правилами для API и мобильных тестов.
В браузере без установки чего-либо поможет Local Overrides в Chrome DevTools: подмена тела ответа и заголовков.
Для мобильных нужен корневой сертификат прокси на устройстве. С Android 7 приложения по умолчанию не доверяют пользовательским сертификатам, поэтому в отладочной сборке нужен network_security_config с debug-overrides. Certificate pinning в релизе прокси не пропустит.
Где спотыкаются
Называют Wireshark инструментом подмены. Он захватывает и анализирует пакеты, но менять запросы не умеет, а HTTPS без ключей сессии не расшифрует.
Забывают выключить Map Local и заводят баг на то, что сами подставили. Перед заведением бага повторите сценарий без прокси.
Тестируют только на моках. Заглушка устаревает, реальный API меняется, и тесты зелёные, а продукт сломан. Моки дополняют проверку на живом стенде, но не заменяют её.