Как работает Charles?
Charles — инструмент для мониторинга HTTP/HTTPS трафика. Программа работает как прокси-сервер между приложением и сервером этого приложения. Charles записывает и сохраняет все запросы, которые проходят через него и позволяет их редактировать.
Инструкция по установке Charles на Windows.
1. Скачиваем и устанавливаем с официального сайта https://www.charlesproxy.com/download/
2. Начинаем перехватывать трафик
Запускаем Charles, заходим в меню Help → SSL Proxying → Install Charles Root Certificate → Установить сертификат → Импортируем сертификат.
В открывшемся окне Сертификат → Установить сертификат. Выбрать «Текущий пользователь». Далее вы получите уведомление, что сертификат успешно импортирован.
Далее узнаем IP-адрес ПК: в Charles Proxy перейдем в Help → Local IP Address
Далее откроем Браузер, и находим параметры сети в Параметры сети → Настроить. Заполняем поля и нажмем Ок.
3. Для мониторинга HTTPS-трафика нужно пройти дополнительные шаги:
3.1 После настройки перейти по ссылке chls.pro/ssl загрузить сертификат. В этот момент будет входящее соединение в Charles Proxy, необходимо нажать Allow, а также выполнить импорт сертификата.
Готово. После этого в Charles начинают отображаться все HTTP-запросы и ответы, которые проходят.
3.2 В списке хостов выбираем желаемый хост с HTTPS и ставим галочку Enable SSL Proxying.
Теперь в Charles отображается HTTPS-трафик по выбранному хосту
Подмена данных
Находим запрос, данные которого вы хотите подменить. Далее переходим в Proxy - Breakpoint Settings
Ставим галочку в Enable Breakpoints
Далее нажимаем Add и заполняем поля (если вставить url в поле host то все заполниться автоматически)
Нажимаем Ок
В списке появился наш Breakpoint
Нажимаем Ok и обновляем нужную нам страницу
Меняем нужные вам данные и нажимаем Execute
Вот и все. Приложение отображает нужную нам информацию и проблем с кириллицей не возникает.
Итоги
Charles является незаменимым инструментом в арсенале QA-инженеров. С его помощью можно создавать любые необходимые тестовые данные, как реальные, так и невозможные. Тестирование на таком уровне позволяет находить более сложные дефекты и значительно повышает общее качество приложения.