Ответ
Использовал Charles Proxy для анализа, отладки и тестирования сетевого трафика веб- и мобильных приложений.
Ключевые сценарии применения:
-
Анализ API-трафика (REST/GraphQL/WebSocket):
- Просмотр структуры запросов и ответов в реальном времени.
- Проверка корректности заголовков, параметров и тела запроса.
- Анализ кодов состояния HTTP и времени отклика.
-
Мокирование и подмена ответов (Stubbing/Mocking):
- Map Local: Подмена ответа сервера локальным файлом (JSON/XML) для тестирования различных сценариев (успех, ошибка, пустые данные).
Практический пример: Замена ответа
/api/productsна файлempty_response.jsonдля проверки обработки пустого списка в UI. - Rewrite: Динамическое изменение частей запроса или ответа (например, подмена
status_codeс 200 на 500).
- Map Local: Подмена ответа сервера локальным файлом (JSON/XML) для тестирования различных сценариев (успех, ошибка, пустые данные).
Практический пример: Замена ответа
-
Отладка проблем:
- Поиск лишних или отсутствующих запросов.
- Анализ загрузки ресурсов (Waterfall view) для выявления «узких» мест.
- Проверка корректности кэширования.
-
Тестирование мобильных приложений:
- Настройка устройства на работу через прокси Charles.
- Установка SSL-сертификата Charles для расшифровки HTTPS-трафика.
- Перехват трафика из эмуляторов и реальных устройств.
Пример настройки Breakpoint для изменения запроса:
- В Charles находим нужный запрос (например,
POST /api/login). - Правой кнопкой → Breakpoints.
- При срабатывании брейкпоunta можно:
- В закладке Edit Request изменить тело запроса (подставить невалидный пароль).
- В закладке Edit Response подменить ответ сервера (например, вернуть
{"error": "Account locked"}).
Важно: Для работы с HTTPS необходимо доверять корневому сертификату Charles на тестовом устройстве/в эмуляторе.