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

Какие фичи раскрывает Sharles

1.0 Junior🔥 122 комментариев
#Другое

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

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

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

Фичи Charles Proxy для тестирования и отладки

Charles Proxy — это мощный HTTP(S) прокси-сервер и монитор трафика, который незаменим для QA-инженеров, разработчиков и DevOps. Он выступает в роли "прослойки" между клиентом (браузер, мобильное приложение, десктопный клиент) и сервером, позволяя анализировать, модифицировать и имитировать различные сетевые условия. Вот ключевые фичи, которые делают Charles незаменимым инструментом в арсенале QA.

1. Просмотр и анализ трафика (Traffic Monitoring & Inspection)

Самая базовая и часто используемая функция. Charles в режиме реального времени отображает все HTTP/HTTPS запросы и ответы, проходящие через него.

  • Древовидная или последовательная структура: Позволяет группировать запросы по хосту, что удобно для анализа API конкретного сервиса.
  • Детализация запросов и ответов: Для каждого запроса можно просмотреть:
    *   **Заголовки (Headers):** Cookies, User-Agent, токены авторизации.
    *   **Тело (Body):** В удобном формате (JSON, XML, HTML, plain text) с подсветкой синтаксиса и возможностью поиска.
    *   **Куки (Cookies):** Все отправленные и полученные куки.
    *   **Статус и время:** Код ответа (200, 404, 500) и длительность выполнения.

# Пример того, как может выглядеть структура запроса в Charles
Запрос:
GET /api/v1/users HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
User-Agent: Mozilla/5.0

Ответ:
HTTP/1.1 200 OK
Content-Type: application/json

{
  "users": [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
  ]
}

2. Маппинг и перехват (Map Local / Map Remote & Breakpoints)

Критически важные фичи для тестирования.

  • Map Local: Подмена ответа от сервера на локальный файл. Используется для:
    *   Тестирования новых версий API, которые ещё не задеплоены.
    *   Проверки поведения фронтенда при различных (в том числе ошибочных) данных от бэкенда.
    *   Имитации специфичных сценариев (пустой ответ, огромный массив данных, нестандартные символы).
  • Map Remote: Перенаправление запросов с одного домена/пути на другой. Полезно для тестирования на стейджинг-окружении или для обхода CORS.
  • Breakpoints (Точки останова): Позволяют "остановить" запрос или ответ, вручную отредактировать его данные (заголовки, тело) и затем отправить дальше. Идеально для:
    *   Тестирования валидации на стороне клиента и сервера.
    *   Подмены параметров (например, ID заказа или суммы платежа) на лету.

3. Эмуляция сетевых условий (Throttling)

Позволяет искусственно ограничить скорость и качество сетевого соединения. Это имитирует работу приложения в условиях:

  • Медленного 3G/EDGE.
  • Нестабильного соединения с высокой задержкой (latency) и потерей пакетов (packet loss).
  • Ограниченной пропускной способности (bandwidth). Зачем это QA: Проверить, как приложение ведёт себя при плохом интернете: не "зависает" ли UI, корректно ли работают таймауты, есть ли индикаторы загрузки, происходит ли graceful degradation.

4. Запись и повторение (Recording & Repeat)

  • Запись сессий: Весь перехваченный трафик можно сохранить в файл сессии (.chls). Это полезно для:
    *   Документирования багов (приложить сессию к отчёту).
    *   Анализа работы приложения позже.
    *   Создания коллекций запросов для последующего повторения.
  • Повтор запросов (Repeat): Любой запрос можно повторить (один раз или N раз с определённым интервалом). Это ключевая функция для:
    *   **Нагрузочного тестирования вручную** (например, проверить, как поведёт себя эндпоинт при 10 последовательных вызовах).
    *   Воспроизведения сценариев после правок на сервере.
    *   Отладки непостоянных (flake) багов.

5. Работа с SSL/TLS (SSL Proxying)

Charles может расшифровывать HTTPS-трафик, устанавливая себя в качестве доверенного Root CA (Certificate Authority). После установки сертификата Charles на устройство или в системное хранилище, вы можете читать содержимое зашифрованных запросов и ответов, что абсолютно необходимо для современного тестирования.

  • Важно: Для тестирования мобильных приложений необходимо отдельно установить сертификат Charles на устройство и, зачастую, добавить его в доверенные для Wi-Fi соединения (особенно на iOS/Android 10+).

6. Композиция запросов (Compose)

Позволяет вручную создавать и отправлять произвольные HTTP/HTTPS запросы. Используется как простой REST-клиент для:

  • Проверки API-эндпоинтов в отрыве от интерфейса приложения.
  • Отправки некорректных или "взломанных" данных для проверки безопасности.
  • Быстрой отправки запросов с разными методами (GET, POST, PUT, DELETE) и параметрами.

7. Панель инструментов (Tools) и авто-ответчик (Auto-Responder)

  • Validate (Валидация JSON): Быстрая проверка JSON-ответов на соответствие схеме (JSON Schema).
  • JSON Path / XPath Finder: Поиск данных в теле ответа с помощью выражений JSON Path или XPath.
  • Auto-Responder: Более простая альтернатива Map Local. Позволяет настроить правило: "если запрос соответствует паттерну (URL), всегда отдавать указанный локальный файл". Отлично подходит для мока статических ресурсов (картинки, JS, CSS).

Вывод для QA-инженера: Charles — это не просто "сниффер". Это многофункциональная песочница для манипуляции сетевым взаимодействием. Он позволяет не только находить баги (например, лишние запросы или ошибки в API), но и активно их исследовать, изменяя условия "на лету", и воспроизводить сложные сценарии, которые тяжело добиться через UI. Владение Charles значительно повышает глубину и эффективность тестирования клиент-серверных приложений.