Опишите ваш практический опыт работы с прокси-отладчиком Charles.

«Опишите ваш практический опыт работы с прокси-отладчиком Charles.» — вопрос из категории Инструменты тестирования, который задают на 24% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Использовал Charles Proxy для анализа, отладки и тестирования сетевого трафика веб- и мобильных приложений.

Ключевые сценарии применения:

  1. Анализ API-трафика (REST/GraphQL/WebSocket):

    • Просмотр структуры запросов и ответов в реальном времени.
    • Проверка корректности заголовков, параметров и тела запроса.
    • Анализ кодов состояния HTTP и времени отклика.
  2. Мокирование и подмена ответов (Stubbing/Mocking):

    • Map Local: Подмена ответа сервера локальным файлом (JSON/XML) для тестирования различных сценариев (успех, ошибка, пустые данные). Практический пример: Замена ответа /api/products на файл empty_response.json для проверки обработки пустого списка в UI.
    • Rewrite: Динамическое изменение частей запроса или ответа (например, подмена status_code с 200 на 500).
  3. Отладка проблем:

    • Поиск лишних или отсутствующих запросов.
    • Анализ загрузки ресурсов (Waterfall view) для выявления «узких» мест.
    • Проверка корректности кэширования.
  4. Тестирование мобильных приложений:

    • Настройка устройства на работу через прокси Charles.
    • Установка SSL-сертификата Charles для расшифровки HTTPS-трафика.
    • Перехват трафика из эмуляторов и реальных устройств.

Пример настройки Breakpoint для изменения запроса:

  1. В Charles находим нужный запрос (например, POST /api/login).
  2. Правой кнопкой → Breakpoints.
  3. При срабатывании брейкпоunta можно:
    • В закладке Edit Request изменить тело запроса (подставить невалидный пароль).
    • В закладке Edit Response подменить ответ сервера (например, вернуть {"error": "Account locked"}).

Важно: Для работы с HTTPS необходимо доверять корневому сертификату Charles на тестовом устройстве/в эмуляторе.