Как инженер-испытатель, захват пакетов является наиболее часто используемым методом анализа проблем, а Чарльз — наиболее часто используемым прокси-инструментом.Есть несколько причин для его использования:
Функция прокси
http/https, носки5
Моделирование ограничения скорости
отладка точки останова
Вперед
Сопоставление: пусть запрос, отправленный на веб-сайт, возвращает содержимое веб-сайта b.
Переписать: автоматически вмешиваться в запрос и содержимое
Инструменты: запрос на сборку, запрос на воспроизведение, запрос на повторное чтение
Вышеупомянутый различный анализ прокси-инструментов Чарльза, нет предела обучению, каждую точку знаний необходимо тщательно изучать и накапливать медленно ~
2. Макет интерфейса
Примечание. Следующие операции установили Charles по умолчанию и настроили сертификат доверия, который можно успешно проксировать.
2.1 Макет удаленного сервиса (Map Remote)
Сценарии применения Например, компания сейчас запустила веб-сайт и хочет проверить, как он работает в H5, но новая версия еще не запущена, и если вы хотите испытать эффект запуска в реальной системе, вы можете использовать远程服务mockПуть.
Практическая демонстрация
Вот пример посещения домашней страницы Baidu с последующей переадресацией запроса на домашнюю страницу testerhome.
1) вCharles-ToolsвыбранMap Remote
2) Проверить после открытияEnable Map Remout, затем нажмитеAdd3) Установите отображение из (Map From) путь, протокол (не выбирайте http по умолчанию, поддерживается https) и сопоставление с (Map To) путь, протокол; нажмите после завершенияOK4) В это время входим в браузерwww.baidu.comСделайте доступ и обнаружите, что фактический доступtesterhome, также видно из перехвата пакета, что он отображается какMapped from remote URL: https://www.baidu.com/
2.2 Rewriting traffic with Breakpoints
Используя точки останова, указанный запрос HTTP или HTTPS может быть перехвачен и приостановлен до достижения клиента.После приостановки исходные данные могут быть изменены, например, может быть изменено возвращаемое значение.После завершения модификации запрос может быть отправлено клиенту.
Сценарии примененияИногда мы проверяем интерфейс, который может включать в себя длину поля, количество цифр, отображение разных цветов или изображений логотипа для разных значений и т. д. Может быть не так удобно создавать сложные данные, полагаясь исключительно на бэкенд, и может быть сгенерировано большое количество грязных данных, и цель нашего теста состоит только в том, чтобы проверить интерфейсный дисплей, поэтому в настоящее время мы можем использовать метод Чарльза.rewriteфункция для завершения макета данных;
Практическая демонстрация 1) Щелкните правой кнопкой мыши запрос, который необходимо перехватить, и выберите "Breakpoints"2) вProxy->Breakpoint SettingsпроверилEnable Breakpoints, затем дважды щелкните запрос, чтобы открыть всплывающее окно.Edit Breakpointкоробка, провереноResponseназадOK3) В это время, когда мы заходим на домашнюю страницу testerhome, мы обнаружим, что запрос запрашивающей стороны был перехвачен, а веб-сайт загружается и ожидает ответа.4) Выберите «Редактировать ответ» и измените исходную строку заголовка.社区"поле есть"Charles社区", нажмитеExecute5) Проверьте домашнюю страницу testerhome и обнаружите, что исходное поле заголовка было успешно изменено.
2.3 Rewriting traffic with the Rewrite tool
Точка останова быстро реализует перехват и модификацию интерфейса, но если вы хотите каждый раз перехватывать и модифицировать одинаково, то нужно каждый раз запускать вручную, что очень неудобно и влияет на эффективность, поэтому мы можем использовать функцию Rewrite в Tools to Complete правила взлома, которые заранее определяют данные интерфейса, так что каждый доступ будет автоматически перехватывать и изменять передачу
Сценарии применения такой жеBreakpoint
Практическая демонстрация 1)ToolsвыбранRewrite, а затем укажите URL-адрес запроса, который необходимо перехватить2) Выберите сноваAddПравило перезаписи, которое вернет "TTF榜单"заменить"11111榜单"3) Вернитесь на домашнюю страницу testerhome.
3. Дополнительные инструкции
вышесказанноеRewriteфункцию не только дляresponseмодификации, вы также можетеrequestИзмените его, но чаще используетсяresponseмодифицировать.