Что такое Charles Proxy и для чего он используется в тестировании?

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

Ответ

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

Ключевые функции для тестировщика:

  • Перехват и логирование трафика: Просмотр всех HTTP/HTTPS запросов и ответов в удобном структурированном виде (заголовки, тело, cookies).
  • Модификация "на лету": Изменение параметров запроса, заголовков или тела ответа для тестирования различных сценариев.
  • Замедление сети (Throttling): Имитация медленного соединения (3G, Edge) для проверки поведения приложения.
  • SSL-проксирование: Расшифровка HTTPS-трафика для его анализа (требует установки сертификата Charles на устройство).
  • Повтор запросов (Repeat): Многократная отправка одного запроса для нагрузочного тестирования или воспроизведения ошибки.

Типичный сценарий использования:

  1. Запустить Charles.
  2. Настроить устройство или браузер на использование Charles как прокси.
  3. Установить SSL-сертификат Charles на устройство для расшифровки HTTPS.
  4. Начать работу с приложением и анализировать трафик.

Пример перехваченного запроса в Charles:

GET /api/v1/products?category=books HTTP/1.1
Host: api.store.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
User-Agent: Mozilla/5.0

Применение в тестировании:

  • Тестирование API: Валидация формата запросов и ответов.
  • Отладка: Поиск причин ошибок (например, 4xx/5xx коды ответов).
  • Безопасность: Проверка, не передаются ли чувствительные данные в открытом виде.
  • Производительность: Анализ размера ответов и времени загрузки.