← Назад к вопросам

В каком браузере подменял трафик

1.7 Middle🔥 171 комментариев
#Веб-тестирование

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Подмена трафика в браузере: инструменты и методы

Подмена трафика — ключевой навык в тестировании, особенно при проверке API, отладке клиент-серверного взаимодействия или эмуляции различных сценариев. Я использую несколько инструментов в зависимости от задачи, но чаще всего работаю в Google Chrome с встроенными DevTools, а для сложных случаев — с прокси-серверами (Charles, Fiddler или Burp Suite).

1. Встроенные инструменты браузера (Chrome DevTools)

Для быстрой отладки веб-приложений Chrome DevTools — мой основной выбор. Пример работы с Network tab:

// Пример перехвата запроса и модификации через DevTools
// 1. Открываем DevTools (F12) → Вкладка Network.
// 2. Фильтруем запросы (по типу XHR/Fetch).
// 3. Кликаем правой кнопкой на запросе → "Copy as cURL".
// 4. Модифицируем параметры (заголовки, тело) и выполняем повторно.

Преимущества:

  • Быстрая перезагрузка запросов с изменёнными данными.
  • Эмуляция медленных сетей (Throttling).
  • Блокировка ресурсов для проверки деградации функциональности.

2. Прокси-серверы для комплексной подмены

Для сложных сценариев (например, модификация HTTPS-трафика или работа с мобильными приложениями) я использую:

  • Charles Proxy — для перехвата и модификации запросов/ответов в реальном времени.
  • Fiddler Classic — для автоматизации через скрипты (FiddlerScript).
  • Burp Suite — при тестировании безопасности.

Пример настройки прокси в Charles для подмены JSON-ответа:

// В Charles: Tools → Rewrite → Добавить правило.
// Условие: URL содержит "/api/user".
// Действие: Подменить тело ответа на:
{
  "id": 999,
  "name": "TEST_USER",
  "role": "admin"
}

Ключевые возможности:

  • Breakpoints — остановка запросов перед отправкой/получением.
  • Map Local/Remote — подмена ответа локальным файлом или удалённым ресурсом.
  • Throttling — имитация сетевых проблем.

3. Автоматизация через скрипты

Для интеграции в автотесты я применяю библиотеки, например, Playwright или Selenium с прокси. Пример с Playwright:

# Подмена ответа API в тесте
from playwright.sync_api import route, expect

def handle_route(route):
    # Подменяем ответ
    route.fulfill(
        status=200,
        content_type="application/json",
        body='{"status": "mocked"}'
    )

page.route("**/api/data", handle_route)

Преимущества подмены в автотестах:

  • Изоляция тестов от внешних сервисов.
  • Тестирование граничных случаев (ошибки 500, таймауты).
  • Ускорение прогонов за счёт моков.

Когда какой инструмент использовать?

  • DevTools — для разовых проверок фронтенда.
  • Charles/Fiddler — для тестирования мобильных приложений или сложной отладки.
  • Burp Suite — для пентеста (SQL-инъекции, XSS).
  • Автотесты с моками — для регрессионного тестирования.

Важно: При работе с HTTPS необходимо устанавливать корневые сертификаты инструментов (Charles/Fiddler), чтобы расшифровать трафик. Также стоит помнить о юридических аспектах — подмена трафика допустима только в тестовых средах или с разрешения владельца продукта.

Заключение

Выбор браузера или инструмента зависит от контекста. Я начинаю с Chrome DevTools для простых случаев, а для комплексных задач перехожу на прокси-серверы. Этот подход позволяет эффективно находить баги, связанные с сетевым взаимодействием, и обеспечивать качество продукта.