Ответ
Charles Proxy — это инструмент для отладки и анализа сетевого трафика. Его основные функции:
1. Перехват и анализ трафика
- Просмотр запросов/ответов: Детальная информация по каждому HTTP/HTTPS-запросу: URL, метод, статус, заголовки, тело.
- Расшифровка HTTPS: Позволяет просматривать зашифрованный трафик после установки сертификата Charles в систему доверенных.
2. Манипуляция трафиком (Mocking & Stubbing)
- Breakpoints (Точки останова): Приостановка запроса или ответа для их изменения «на лету» перед отправкой.
- Map Local: Подмена ответа от сервера содержимым локального файла. Незаменимо для тестирования различных сценариев без деплоя бэкенда.
- Практика: Правый клик на запросе → Map Local → выбрать JSON/XML файл с mock-данными.
- Map Remote: Перенаправление запросов с одного домена на другой.
- Rewrite Rules: Автоматическое изменение частей запроса или ответа (заголовков, URL, тела) по заданным правилам.
3. Тестирование производительности и сетевых условий
- Throttling (Ограничение скорости): Эмуляция медленных сетей (3G, EDGE) для проверки поведения фронтенда.
- Repeat/Stress Test: Многократный повтор выбранного запроса для нагрузочного тестирования или воспроизведения race condition.
4. Организация и фильтрация
- Focus на домен: Скрытие всего трафика, кроме указанных доменов.
- Структурирование по сессиям: Сохранение сессий для последующего анализа или отчета.
5. Автоматизация
- Charles CLI: Запуск в headless-режиме и экспорт данных для интеграции в CI/CD-конвейеры.
Пример сценария использования Map Local:
- Сервер обычно возвращает:
{"status": "success", "data": []} - Создаем локальный файл
error_500.json:{"status": "error", "code": 500, "message": "Internal Server Error"} - Настраиваем Map Local для эндпоинта
/api/orders. Теперь клиент получит наш mock-ответ с ошибкой, что позволяет проверить обработку ошибок на фронтенде.