Приложение charles не видит запросов яндекс браузера
Документацию можно почитать на официальном сайте , а в данной заметке я покажу основные кейсы его использования.
Установка и предварительная настройка
Установка и запуск
Скачайте и установите Charles .
При первом запуске Charles скорее всего попросит разрешения внести изменения в сетевые настройки вашего компьютера, согласитесь.
Настройка прокси
Далее перейдите в Proxy – Access Control Setting, нажмите кнопку Add и добавьте IP-адрес 0.0.0.0/0.
Установите сертификаты на компьютер: Help – SSL Proxying – Install Charles Root Certificate.
Укажите порт: Proxy – Proxy Settings – вкладка Proxies – Port: 8888.
Проксирование трафика веб-браузера
Если не хотите видеть запросы с ПК, перейдите на вкладку MacOS (Windows) и снимите чекбоксы. Но если целью является изучение трафика из браузера, наоборот, удостоверьтесь, что чекбоксы установлены.
Когда закончите с настройками прокси, перезапустите Charles.
Настройка прокси на устройстве
Если целью является изучение трафика с устройства, например со смартфона, нужно выполнить на нем дополнительные настройки.
Компьютер с Charles и устройство должны находиться в одной сети.
На устройстве, в настройках сети или Wi-Fi, укажите прокси-сервер: IP-адрес компьютера с запущенным Charles и порт 8888, или другой, который был указан при настройке прокси.
Быстро узнать IP-адрес компьютера с запущенным Charles можно через пункт меню Help – Local IP Address.
Для iPhone откройте Настройки (Settings), перейдите в настройки Wi-Fi, выберите активную Wi-Fi сеть, пролистайте экран вниз и выберите пункт Настройка прокси (Configure Proxy). Метод определения выберите Вручную (Manual) и укажите IP-адрес и порт.
Далее нужно установить сертификат прокси-сервера.
Установите скачанный сертификат Charles. Процесс установки зависит от используемого устройства и может различаться.
Например, чтобы установить сертификат на iPhone откройте Настройки (Settings), перейдите в Основные (General), пролистайте вниз и выберите пункт Профили и управление устройством (Profiles & Device Management). В открывшемся меню найдите загруженный профиль сертификата, откройте его, а затем установите.
Дополнительно может потребоваться установить доверие сертификату. Откройте Настройки (Settings) – Основные – Об этом устройстве (About), пролистайте вниз до конца, выберите пункт Доверие сертификатов (Certificate Trust Settings). В открывшемся окне отметьте переключателем сертификат, которому хотите дать доверие.
Для Android действия будут похожими, за исключением того, что дополнительно не потребуется указывать доверие сертификату, его достаточно будет лишь установить.
Подробнее про установку сертификатов можно прочитать в документации Charles.
Теперь можно проксировать и изучать трафик.
Как смотреть трафик
Запустите Charles. На устройстве или в браузере откройте интересующий сайт или приложение. При выполнении действий на клиенте, запросы с него и ответы от сервера будут логироваться в Charles.
В режиме Structure в левой части окна отображается список запросов, сгруппированный по хостам. Выделив элемент хоста, в правой части окна будет выведена подробная информация о запросе (сверху) и ответе (снизу), в том числе метод, заголовки, куки, запрос, ответ, параметры и прочая информация.
В режиме Sequence запросы отображаются без группировки, последовательно.
Чтобы исключить из отображения ненужные хосты, удобно пользоваться фильтром (поле под списком хостов).
Выделив хост, в контекстном меню можно включить режим Focus, при котором запросы к интересующим хостам будут группироваться вместе, а остальные скрыты в отдельную группу.
Не забывайте пользоваться Поиском (Edit – Find или Cmd+F). Он поможет быстро найти интересующий параметр или подстроку среди перехваченных запросов.
На что стоит обращать внимание:
- запрос уходит на верный URL;
- допустимое время между действием, отправкой запроса и получением ответа;
- метод, код ответа, тело, параметры cоответствуют ожидаемым, значения не пустые;
- формат данных;
- запрос не дублируется;
- данные отобразились на клиенте.
Как менять запросы и ответы
Задача: на лету изменить параметр в заголовке или в теле запроса и посмотреть, что вернёт сервер, либо наоборот, модифицировать ответ сервера, чтобы проверить как поведет себя клиент.
В этом случае можно использовать инструмент Rewrite (Tools – Rewrite – галочка Enable Rewrite.
Добавьте новое правило, введите хост (или оставьте пустым, тогда правило будет действовать для всех хостов), затем заполните Rewrite Rule, где укажите что на что необходимо заменить.
В примере ниже, значение поля bonus в теле ответа будет заменено со 100 на 5000.
Еще задача: допустим есть лента с контентом (видео, реклама, музыка) и при тестировании нужно быстро изменить его источник без вмешательства разработчика.
В разделе Match можно использовать регулярные выражения.
Аналогичным способом через Rewrite можно изменять, добавлять, удалять заголовки, менять коды ответа сервера, хосты и url.
Как вручную отредактировать запрос
Задача: перехватить запрос (ответ) и перед отправкой (приемом) его отредактировать. Отличие от предыдущей задачи заключается в том, что в ней данные менялись на лету по заранее заданному шаблону, здесь же редактирование осуществляется вручную.
Запросы можно редактировать используя инструмент Compose. Прежде нужно, чтобы запрос выполнился хотя бы один раз. Найдите его среди остальных запросов. В контекстном меню выберите Compose.
В открывшемся окне можно изменить тело запроса, метод, протокол, url, параметры, заголовки и куки. Затем нужно нажать кнопку Execute и запрос будет отправлен с новыми данными.
Инструмент Repeat в контекстном меню запроса отправит его на сервер еще раз.
Repeat Advanced – похож на Repeat, однако позволяет указать количество отправляемых запросов и задержку между ними. Данный функционал может быть полезен при проверке сервера на флуд.
С помощью инструмента Breakpoints (точки остановка) можно перехватывать и изменять не только запросы, но так же и ответы от сервера, прежде чем они попадут на клиент.
Для начала нужно включить возможность использования Breakpoints (Proxy – Breakpoint Settings – Enable Breakpoints).
Далее нужно указать URL запроса, который в случае выполнения должен быть перехвачен. Это можно сделать в том же окне Breakpoint Settings, либо повесить Breakpoint через контекстное меню, выбрав ранее выполненный запрос.
Перед выполнением запроса он будет остановлен и вы сможете отредактировать его тело, метод, протокол, url, параметры, заголовки и куки.
Когда запрос будет отправлен, ответ так же будет перехвачен, его аналогичным способом можно отредактировать.
Как подменить хост в API
Задача: подменить продовый хост с API на тестовый. Это можно сделать двумя способами.
Первый, через инструмент Rewrite, подобно тому, как описано в предыдущем разделе.
Второй способ подменить API, заключается в использовании инструмента Map Remote (Tools – Map Remote).
В зависимости от задачи можно подменить хост целиком, его часть или только параметры.
Как подменить код ответа сервера
Задача: проверить как поведет себя клиент при неожиданном коде ответа от сервера.
Как и в предыдущих двух примерах, тут подойдет инструмент Rewrite (Tools – Rewrite).
Как эмулировать недоступность сервера
Задача: проверить как поведет себя клиент при недоступности хоста.
Используя инструмент Block List (Tools – Block List), можно заблокировать доступ клиента к указанному хосту. На выбор разрыв соединения либо 403 код ответа.
Инструмент Allow List (Tools – Allow List) наоборот блокирует все хосты кроме разрешенных.
Как замокать ручку или подменить файл
Задача: подменить ответ от сервера на заранее подготовленный, сохраненный локально, например, чтобы замокать ответ ручки или заменить скрипт.
Для этих целей можно использовать инструмент Map Local (Tools – Map Local).
В настройках укажите ручку или файл на сервере, а также локальный файл, который будет использован вместо них. Поддерживаются форматы HTML, CSS, JSON, XML и медиафайлы.
Как эмулировать проблемы в сети
Задача: посмотреть, как работает сервис в различных сетевых условиях.
Для этого предназначен инструмент Throttle (Proxy – Throttle Settings).
Здесь можно включить сетевые ограничения для определенных или всех хостов, а так же задать различные сетевые параметры.
- Bandwidth – пропускная способность;
- Utilisation – эффективность использования пропускной способности;
- Latency – задержка в миллисекундах между клиентом и сервером;
- MTU – максимальный объём данных за одну итерацию;
- Reliability – вероятность, что соединение не удастся;
- Stability – вероятность, что соединение будет нестабильным.
Так же можно использовать готовые предустановки из списка.
Как раздать VPN
Задача: дать доступ другому устройству в корпоративную сеть.
Если компьютер с установленным Charles имеет доступ к сети VPN, то и устройства, трафик которых проксируется, будут иметь доступ к той же сети.
Другие полезные функции
Инструмент Block Cookies – предотвращает получение клиентом запросов на установку cookie с сервера.
Инструмент No Caching предотвращает кэширование через заголовки.
MacOS Proxy или Windows Proxy разрешает или запрещает проксирование трафика из браузера, установленного на том же компьютере, что и Charles.
Инструмент Port Forwarding (проброс портов) позволяет пересылать запросы с одного порта на другой.
DNS Spoofing – перенаправляет запрос с доменного имени на указанный IP-адрес.
Mirror – автоматически сохраняет в указанную папку все ответы, возвращаемые в Charles. Затем их можно использовать как моки.
Устранение проблем
Большая часть функций Charles не будет работать если не установлены или не корректно установлены сертификаты. Это самая распространенная проблема. Вторая проблема может быть в том, что для связи клиента и сервера используется SSL соединение, но оно выключено в Charles, соответсвенно он не может его расшифровать, тем более изменить запрос или ответ.
Убедитесь, что ответ в Charles отображается в незашифрованном виде, как на скриншоте ниже. Это значит базовые настройки выполнены верно, сертификаты установлены, SSL Proxying включен.
Если же в ответе нечитаемый текст, как на скриншоте ниже, часть инструментов Charles работать не будет.
В этом случае проверьте, что выполнили все рекомендации по настройке описанные в начале данной статьи.
В частности удостоверьтесь, что проксирование включено для SSL соединений. Галочка в Enable SSL Proxying в Proxy – SSL Proxying Settings должна быть установлена, указана локация.
Сертификаты Charles должны быть установлены в системе (Help – SSL Proxying – Install Charles Root Certificate).
Сертификаты Charles должны быть установлены на клиенте, если в качестве него выступает другое устройство.
Если клиентом является iPhone, убедитесь, что кроме того, что сертификат установлен, ему так же выдано доверие (это один из пунктов, который часто пропускают).
Дополнительную информацию про установку сертификатов можно получить в документации Charles.
Если клиентом является браузер, установленный на том же компьютере, где и Charles убедитесь, что разрешено проксирование с локального устройства (Proxy – MacOS Proxy или Windows Proxy).
Делитесь интересными кейсами использования Charles и я добавлю их в статью.
Полезные ссылки
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Зачастую, при тестировании мобильных (да и web) клиент-серверных приложений бывают ситуации, когда нужно проверить как ведёт себя приложение при разном объеме данных, в каком формате приложение отправляет и получает данные, какие параметры у запроса и ответа, какой ответ присылает сервер при некорректном запросе, как реагирует приложение на некорректный ответ, как оно обрабатывает ошибки. Всё это можно относительно просто проверить при помощи Charles Proxy Server.
1. Установка и запуск
Скачиваем Charles Proxy с официального сайта, устанавливаем, запускаем (помним, что бесплатно можно пользоваться 30 дней). После запуска Charles предложит сам настроить сетевые подключения для работы:
Соглашаемся. Далее откроется интерфейс инструмента:
Слева (Structure/Sequence) будут отображаться соединения, внутри которых можно будет увидеть запросы. В правой части будут отображаться параметры запроса.
2. Настройка мобильного устройства
Чтобы Charles мог мониторить весь входящий и исходящий трафик на устройстве, в настройках Wi-Fi подключения на устройстве нужно прописать IP-адрес хоста с запущенным Charles и указать порт 8888 (по умолчанию). В самом Сharles в настройках прокси нужно удостовериться что стоит порт 8888 (при необходимости можно изменить). Итак, проверка настроек Charles:
И настройка Wi-Fi подключения на смартфоне (в данном примере использовался iPhone):
Начиная с этого момента, в Charles мы можем видеть адреса, к которым обращается смартфон.
3. Последние штрихи настройки
Далее, возвращаемся к настройке самого Charles. Во-первых, если нас интересует конкретный адрес, а весь остальной трафик является шумом, то нужно кликнуть по интересующему нас адресу и выбрать пункт “Focus”. Это позволит скрыть все лишние адреса во вкладке “Other Hosts” (см. картинку ниже). Как было упомянуто выше, адреса серверов, на которые смартфон отсылает запросы нам видны, но мы не можем видеть параметры запросов:
Для того, чтобы Charles мог увидеть параметры запроса, нужно прописать адрес сервера в SSl Proxy Settings. Это можно сделать следующим образом:
В поле Host вводим адрес сервера, который нас интересует. Если порт указывать не требуется, то оставляем поле пустымЭтот инструмент как раз и позволяет вносить нужные нам изменения в запросы. По-умолчанию, там ничего нет, следовательно, нам нужно добавить первую опцию, например, на изменение запроса.
Название можно дать любое, для себя я обозначил данную опцию как Request, чтобы в ней хранить все нужные мне модификации для запросов.Далее нужно понять что именно мы хотим изменить в конкретном запросе. Например, нужно проверить, как поведёт себя серверная часть приложения в том случае, если клиент пришлёт некорректный запрос (будет отсутствовать одно поле или в поле будет неверный тип данных). Сообщит ли нам сервер об ошибке? Лучше, конечно, проверять, реакцию клиента на некорректный ответ сервера, потому что такая ситуация наиболее вероятна. Набор действий в любом случае идентичен. Под полем Location нужно кликнуть Add, а затем можно поставить значение * (в этом случае перезапись будет работать для всех запросов), либо указать конкретный URL и конкретный path.
После того как был задан адрес, по которому нужно произвести замену, нужно указать что конкретно следует изменить. В нашем случае это тело запроса.
Послесловие: В данной статье я постарался как можно более просто, но в то же время подробно описать инструкцию по работе с Charles Proxy Server. По сути, данная статья — агрегатор документации, размещенной на официальном сайте.
И так сейчас я вам расскажу о Charles. С чем его едят и как его используют.
Полезные для нас:
Бесполезные для нас:
Полная установка Charles:
2. В открышемся окне выбираем вашу ОС
4. Открываем скачанный файл
2.
3.
4. Ждем установки
5. 1. Заходим сюда
2. Выбираем свою ОС
3. Далее жмем на
4. Ждем пока скачается
5. Запускаем устновочник
6. Жмем
7. Ждем пока пройдет процесс установки
8. И жмем
Теперь Ваш Charles готов к использованию!
Настройка Charles с другими браузерами:
1. Заходим в Инструменты -> Настройки.2. Переходим во вкладку "Дополнительно".
3. Выбираем пункт "Сеть".
4. Жмем кнопку "Прокси серверы. ".
5. Ставим галочку напротив пункта "HTTP".
6. Вводим такие данные: IP: 127.0.0.1 Порт: 8888
После окончания работы в программе Charles, необходимо отключить прокси в опере, иначе просто не будут грузится страницы.
1. Заходим в Сервис -> Свойства обозревателя(также можно через Панель управления)
2. Переходим во вкладку "Подключения".
3. Жмем кнопку "Настройка сети".
4. Ставим на галочку (если она у вас не поставлена) "Использовать прокси-сервер для локальных подключений".
5. В первой строке, там где написанно "HTTP", вводим такие данные:
Адрес: 127.0.0.1 Порт: 8888
Работа с Charles:
2. Жмем на для записи
3. Выполняем какое-либо действие в приложении или на сайте чтобы у вас появились запросы
4. Ищем папку которая нам нужна
5. Жмем ПКМ (Правой Кнопкой Мыши)
6. И щелкаем на
Таким образом вы поставили на эту папку Метку перехвата данных. Т.е. запросы в этой папке будут перехватываться.
7. Далее жмем на . Для того чтобы активировать перехват данных.
8. И дальше перехватываем данные.
9. Чтобы изменять данные зайдите в эту вкладку:
10. А затем в этих подкладках пробуйте изменять
11. После того как изменили - Нажимаем кнопку "Execute"
Пример перехвата данных на игре Вкачалке:
Смотреть
Ошибки в программе:
Q: Почему у меня не работает Правая кнопка мыши в Charle? Что делать?
A: 1. Удалите charles.config (введите в поиске charles.config и это найдется)
2. Удалите полностью Charles (нажмите uninstall , после удалите папочку)
3. Включите CCleaner и почистите реестр
4. Перезагрузите комп
5. Установите Charles
6. И теперь все будет работать
Q: У меня в Mozila не ловит никаких запросов. Что делать?
А: 1.Заходим
4. Выставляем галочки как на скриншоте
5. Если не получилось то попробуйте просто перезапустить Браузер
Q: Что делать с этой ошибкой?
A: Зайдите в Инструменты->Charles->Enable Charles
Q: У меня не загружаются страницы когда запущен Charles. Что делать?
А: В антивирусе добавьте Charles в исключения.(Как именно добавить ищите сами т.к. у всех разные антивирусы)
Q: Когда запускаю Charles у меня просто ничего не происходит. Ни ошибок, ни звуков никаких. Что делать?
A: Надо попробовать переустановить с удалением папок от программ, и с чисткой реестра, например программой CCleaner.
Для удаления заходим в панель управления, «установка и удаление программ», удалим:
- Charles
- Java™ 6 Update 14 (или похожее)
* Насчёт Mozilla не могу сказать «надо» или «не надо», желательно
Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку - Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.
Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку - Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.
Q: Что делать с этой ошибкой?
A: Жмиnt Ctrl+Alt+Dlt, затем зайдиnt на закладку "Процессы" найди там процесс JVM и убейте его. Просто Чарли у тебя сглючил и не убрал свой процесс когда ты его закрыл. При повторном запуске, естественно, он уже кричит.
Q: Что делать когда все запросы получаються такого вида?
А: Отключите Firewall или добавьть приложения в исключения и разреши все сетевые действия.
Q - Вопрос:
А - Ответ:
Q: Почему у меня не работает правая кнопка мыши в Charles? Что делать?
A: 1. Удалите charles.config (введите в поиске charles.config и это найдется);
2. Удалите полностью Charles (нажмите uninstall, после удалите папку, где лежала программа);
3. Включите CCleaner и почистите реестр;
4. Перезагрузите комп;
5. Установите Charles;
6. И теперь все будет работать;
Q: У меня в Mozilla не ловит никаких запросов. Что делать?
А: Заходим в Настройки --> Proxy Setting --> Mozilla Firefox --> ставим чекбокс на Enable Mozilla Firefox Proxy --> жмем OK;
Если не получилось, то попробуйте просто перезапустить браузер;
Q: Что делать с этой ошибкой?
A: Зайдите в Инструменты->Charles->Enable Charles
Q: У меня не загружаются страницы когда запущен Charles. Что делать?
А: В антивирусе добавьте Charles в исключения. (Как именно добавить ищите сами так как у всех разные антивирусы)
Q: Когда запускаю Charles у меня просто ничего не происходит. Ни ошибок, ни звуков никаких. Что делать?
A: Надо попробовать переустановить с удалением папок от программ, и с чисткой реестра, например программой CCleaner.
Для удаления заходим в панель управления, «установка и удаление программ», удалим:
- Charles
- Java(TM) 6 Update 14 (или похожее)
* Насчёт Mozilla не могу сказать «надо» или «не надо», желательно
Папка (и):
C:\Program Files\Charles
Java – её не советую, так как это может повлиять на работу системы в целом.
Содержимое моего конфига:
Попробуйте запустить файл: C:\Program Files\Charles\extra\Run Charles.bat
Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку - Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.
Q: Нажимаю в Firefox на Enable Charles и у меня выдает эту ошибку - Cannot find a running Charles. Please check that Charles is running and that Mozilla Firefox Proxy is enabled in the Proxy menu in Charles. Что делать?
А: Не нужно заходить через Firefox. Просто запустите программу и все.
Q: Что делать с этой ошибкой?
A: Жмите Ctrl+Alt+Dlt, затем зайдите на закладку "Процессы" найди там процесс JVM и убейте его. Просто Чарли у тебя заглючил и не убрал свой процесс, когда ты его закрыл. При повторном запуске, естественно, он уже кричит.
Q: Что делать когда все запросы получаются такого вида?
А: Отключите Firewall или добавьте приложения в исключения и разреши все сетевые действия.
Безусловно это не все ошибки, но они наиболее распространены, потому акцент сделан на них.
Читайте также: