Инструменты QAMiddleТехническое
Диагностика проблем клиента, сети и сервера через Charles Proxy
Краткий ответ
Charles позволяет локализовать проблему по уровню: если HTTP-запрос не отправляется — ошибка на клиенте; если запрос не доходит до сервера — сетевая проблема; если сервер отвечает ошибкой — проблема на сервере.
Развёрнуто
Краткий ответ
Charles Proxy помогает выявить источник ошибки, анализируя HTTP-трафик: отсутствие отправки запроса указывает на клиент, потеря запроса в пути — на сеть, а ошибка в ответе — на сервер.
Как это работает
Charles — это инструмент для перехвата и просмотра HTTP(S)-запросов и ответов. Для диагностики проблемы нужно выполнить следующие шаги:
- Запустить Charles и включить запись трафика (
Start Recording). - Воспроизвести ошибку в тестируемом приложении.
- Проанализировать логи запросов и ответов:
- Если запрос отсутствует в списке — проблема на клиенте (ошибка в приложении или настройках).
- Если запрос отображается, но сервер не получил его (отсутствуют ответы) — проблема в сети (например, блокировка или потеря пакетов).
- Если сервер возвращает HTTP-статус ошибки (4xx, 5xx) — проблема на сервере.
| Ситуация | Причина | Как выглядит в Charles |
|---|---|---|
| Запрос не отправляется | Клиент | Отсутствие запроса в логе |
| Запрос отправлен, ответа нет | Сеть | Запрос есть, ответ отсутствует |
| Сервер отвечает с ошибкой | Сервер | Ответ с HTTP-кодом ошибки (например, 500) |
Пример
1. Запуск Charles и включение записи.
2. В приложении нажимаем кнопку, вызывающую API.
3. В Charles видим список запросов.
Если запрос не появляется — проверяем клиент (код, настройки).
Если запрос есть, но нет ответа — проверяем сеть (firewall, прокси).
Если приходит ответ с ошибкой — анализируем серверные логи.
Что важно знать на собеседовании
- Charles перехватывает и отображает HTTP(S) трафик в реальном времени.
- Правильная интерпретация наличия или отсутствия запросов и ответов — ключ к быстрой диагностике.
- Сетевая проблема часто проявляется как отсутствие ответа на запрос.
- Серверные ошибки видны через HTTP-статусы в ответах.
- Для HTTPS-трафика может потребоваться установка сертификата Charles.
Тема: Инструменты QA | Уровень: middle