Работали ли вы с Charles Proxy?

«Работали ли вы с Charles Proxy?» — вопрос из категории Веб-тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, я активно использовал Charles Proxy для тестирования веб- и мобильных приложений. Это инструмент для перехвата, анализа и модификации HTTP/HTTPS-трафика.

Основные сценарии использования в тестировании:

  1. Отладка API: Просмотр всех исходящих и входящих запросов и ответов в формате JSON/XML, проверка заголовков, статус-кодов и тела запроса.
  2. Модификация трафика (Breakpoints):
    • Подмена параметров запроса (например, user_id или amount) для проверки валидации на стороне сервера.
    • Изменение статус-кода или тела ответа для тестирования реакции клиента на ошибки (500, 404, 403).
  3. Throttling (ограничение скорости): Эмуляция работы приложения в условиях медленного 3G или нестабильного соединения для проверки таймаутов и отображения лоадеров.
  4. Map Local / Map Remote:
    • Map Local: Подмена ответа от сервера локальным файлом. Использовал для тестирования новых фич, когда бэкенд еще не готов, или для стабильных тестовых данных.
    • Map Remote: Перенаправление запросов на другой домен (например, с продакшена на тестовый стенд).
  5. Работа с SSL: Установка сертификата Charles на тестовые устройства и компьютеры для расшифровки HTTPS-трафика.

Пример практической задачи: При тестировании платежного модуля я использовал Breakpoint на запрос к платежному шлюзу, чтобы подменить успешный ответ ({"status": "success"}) на ответ об ошибке ({"status": "insufficient_funds"}) и убедиться, что приложение корректно обрабатывает этот сценарий и показывает пользователю понятное сообщение.