Какой у вас опыт использования Charles Proxy
Что проверяют
Умеете ли вы не только смотреть трафик, но и подменять его. Различие принципиальное: чтение запросов доступно любому, а подмена ответа превращает прокси в инструмент тест-дизайна. Следом обычно спрашивают, как перехватить HTTPS на телефоне и что делать с пиннингом сертификата.
Как отвечать
Рассказывайте сценариями, которые закрывали:
- настройка: Charles поднимает прокси на порту 8888, устройство ходит через него настройкой прокси в Wi-Fi, для расшифровки включается SSL Proxying для нужных хостов и ставится корневой сертификат Charles;
- iOS: мало установить профиль, нужно отдельно включить полное доверие в настройках, в разделе «Об этом устройстве», пункт «Доверие сертификатам». Без этого шага трафик остаётся зашифрованным;
- Android: начиная с API 24 приложения не доверяют пользовательским сертификатам, поэтому нужен отладочный билд с
network_security_configи секциейdebug-overridesлибо устройство с root; - подмена: Map Local отдаёт ответ из файла, Map Remote уводит запросы на другой стенд, Rewrite правит заголовки и тела по правилу, Breakpoints останавливает запрос или ответ для ручного редактирования, Compose и Repeat повторяют вызов с изменениями;
- условия сети: Throttling с пресетами вплоть до медленного мобильного интернета, проверка таймаутов, повторов и поведения офлайн;
- разбор споров: сохранённая сессия прикладывается к дефекту и снимает вопрос, чья это ошибка, фронта или бэкенда.
Полезно назвать ограничение и обход: пиннинг сертификата ломает перехват, нужен билд с отключённым пиннингом. И альтернативы: Proxyman, mitmproxy (скриптуется и годится в автотесты), Fiddler, а для уровня пакетов Wireshark.
Где спотыкаются
Сводят опыт к «смотрел запросы». Без Map Local и точек останова половина ценности инструмента не использована, и это слышно.
Не знают про доверие сертификату и объясняют пустой список запросов тем, что «Charles не дружит с iOS».
Забывают снять прокси и удалить сертификат после работы. Остаётся и дыра в безопасности устройства, и странные сбои сети, которые потом долго ищут.