Для чего подменять трафик и какую практическую пользу это приносит
Что проверяют
Умеете ли вы проверять клиент в состояниях, которые на стенде трудно получить честно: ошибки сервера, пустые и битые ответы, медленная сеть. Следом обычно просят назвать инструмент и описать случай, где подмена нашла реальный баг.
Как отвечать
Подмена трафика это перехват запросов между клиентом и сервером через прокси с изменением запроса или ответа на лету. Практическая польза:
- граничные состояния без бэкенда: подставить в ответ пустой список, строку на 500 символов,
nullв обязательном поле, неизвестное значение enum, статус500или503. Так проверяется, что приложение не падает и показывает внятную ошибку; - работа до готовности API: по согласованному контракту отдаёте мок и тестируете экран, пока бэкенд в разработке;
- проверка серверной валидации: отправляете в обход интерфейса то, что форма не пропустила бы, например отрицательную сумму или чужой
id. Если сервер принял, это баг серьёзнее любого клиентского; - сеть: задержки, обрывы, таймауты, медленное соединение;
- окружения и воспроизведение: перенаправить один эндпоинт с прода на стенд или повторить ответ, на котором у пользователя упало приложение.
Инструменты: Charles Proxy (Map Local, Rewrite, Breakpoints), Proxyman, Fiddler, mitmproxy со скриптами на Python, Burp Suite для безопасности. Для веба хватает DevTools: Local Overrides и троттлинг сети. В автотестах то же делают page.route в Playwright, cy.intercept в Cypress и WireMock для API.
Для мобильных нужен корневой сертификат прокси на устройстве. С Android 7 приложения по умолчанию не доверяют пользовательским сертификатам, поэтому в debug-сборке разработчики прописывают network_security_config, а certificate pinning перехват блокирует вовсе.
Где спотыкаются
Путают подмену с нагрузочным тестированием: тысячи пользователей имитируют JMeter или k6, а не прокси.
Забывают выключить правило Map Local и заводят баг, которого нет: приложение честно показало подставленный ответ. Перед заведением дефекта воспроизведите его без подмены.
Проверяют только клиент. Если через прокси удалось отправить невалидные данные и сервер их сохранил, это отдельный дефект с высоким приоритетом.