Charles — программа для тщательного анализа сетевого трафика и создания собственного Proxy-сервера.
Скачать для Windows
Скачайте последнюю версию Charles 4.6.3 с помощью MultiSetup или по прямой ссылке. Программа совместима с операционными системами Windows 10, 8, 7, Vista, XP разрядностью 32/64-bit, размер установочного файла — 56.8 Мб. Данный программный продукт разработан Karl von Randow и распространяется платно. Также вы можете скачать программу с официального сайта.
Описание программы
С помощью программы можно отслеживать абсолютно весь трафик, который передается между компьютером и сетью Интернет. Инструмент выдает информацию обо всех запросах и ответах.
Одно из достоинств программы — удобный интерфейс. Пользователь видит весь трафик в виде папок, которые называются так же, как сервера, к которым обращался компьютер. В папках отображаются запросы и информация о том, когда и как удаленный сервер взаимодействовал с ПК. Есть у программы и некоторые необычные функции, например, она может внедриться в диалог между игрой и удаленным сервером. Этой функцией пользуются любители нечестно играть в онлайн-игры.
Как тестировать в Charles Proxy? Практика для тестировщика
К другим особенностям софта следует отнести устранение ошибок между ПК и удаленным сервером и имитацию низкоскоростного подключения компьютера к Интернету. Браузеры и программы, установленные на компьютере, легко настроить для доступа к Сети непосредственно через Charles, что позволяет отслеживать все данные.
Преимущества и недостатки
- Функция симуляции медленного интернет-соединения
- Отправка повторных запросов на сервер
- Перехват и изменение запросов
- Диагностика сетевых проблем
- Для работы требуется Java последней версии
- Сложные настройки
Скриншоты интерфейса
Комментарии пользователей
Программы «Анализ трафика»
SZ PortScan
Версия 1.90 — 0.4 Мб
SZ PortScan позволяет сканировать сетевой компьютер на наличие открытых портов. Он создает список, в.
Open Visual Traceroute
Версия 2.0.0 — 36.1 Мб
Open Visual Traceroute позволяет вам отслеживать путь, по которому ваше интернет-соединение идет от вашего.
PortExpert
Версия 1.8.2 — 2.1 Мб
PortExpert предоставляет вам подробный обзор всех приложений и процессов, которые используют вашу сеть или.
IPJudo
Версия 1.4a — 5.7 Мб
IPJudo — это набор инструментов для диагностики TCP/IP, который включает в себя различные сетевые.
Yale
Версия 1.24 — 0.3 Мб
Yale — это небольшой автономный сетевой монитор, который позволяет вам следить за текущей активностью.
NetBalancer
Версия 10.5.2 — 4.9 Мб
NetBalancer позволяет вам установить ограничение полосы пропускания для ваших интернет-приложений. Он.
Speed Test Logger
Версия 1.02 — 1.2 Мб
Speed Test Logger — это регистратор тестов скорости загрузки с открытым исходным кодом, который загружает.
IPNetInfo
Версия 1.95 — 0.1 Мб
IPNetInfo позволяет легко найти всю доступную информацию о данном IP-адресе. Вы можете одновременно.
WhoisConnectedSniffer
Версия 1.28 — 0.3 Мб
WhoisConnectedSniffer отслеживает сетевые пакеты на вашем сетевом адаптере и отображает список всех устройств.
IP-Tools Lite
Версия 2.74 — 1.9 Мб
IP-Tools Lite — это набор сетевых инструментов, который предлагает 19 утилит TCP/IP для анализа и диагностики.
OverSite
Версия 1.2.1.0 — 1.1 Мб
OverSite — это простой инструмент для мониторинга вашего интернет-соединения и устройств в локальной.
WhoisThisDomain
Версия 2.46 — 0.1 Мб
WhoisThisDomain позволяет просматривать информацию о владельце и регистрации для любого доменного имени. Он.
Источник: ktonasoft.ru
Что может программа charles
Снифферы — это инструменты, позволяющие перехватывать, анализировать и модернизировать все запросы, которые через них проходят. Они полезны, когда из потока нужно извлечь какие-либо сведения или создать нужный ответ сервера. Так можно проводить модульное тестирование продукта, в котором есть и бэк, и фронт, и разные команды со своей версионностью.
В этой статье я расскажу об основных функциях снифферов, которые могут быть полезны QA. Попробую не вдаваться в теорию, а сфокусироваться на практике. Наиболее популярными представителями анализаторов трафика сейчас являются WhireShark, Fiddler и Charles Proxy. Об удобстве интерфейсов и функционале каждого из них можно рассуждать долго, учитывая все плюсы и минусы.
Но здесь я отдал предпочтение Charles, поскольку сам им активно пользуюсь. Буду рассказывать на его примере.
Что собой представляет Charles Proxy
Charles Web Debugging Proxy — это инструмент мониторинга HTTP и HTTPS трафика. Он выступает в роли прокси-сервера (промежуточного звена) между тестируемым приложением и сервером на бэкенде, позволяя не только видеть, но также перехватывать и редактировать запросы.
Главное преимущество Charles Proxy и снифферов в целом — возможность просмотра трафика, в том числе с мобильных устройств, что значительно облегчает работу тестировщика клиент-серверных мобильных приложений.
Первичная настройка
При тестировании мобильного приложения
Charles Proxy необходимо запустить на компьютере, который находится в той же локальной подсети, что и мобильное устройство с тестируемым приложением.
Как правило, соединение настраивается по Wi-Fi. В настройках Wi-Fi мобильного устройства в качестве proxy-сервера надо указать IP-адрес компьютера и стандартный порт инструмента 8888 (пароль остается пустым).
IP-адрес компьютера можно узнать через командную строку (ipconfig) или в самом Charles Proxy (Help -> Local IP Address).
Этот же адрес есть в инструкции по подключению, доступной в Help -> SSL Proxying -> Install Charles Root Certificate on mobile device remote browser.
После сохранения настроек Charles Proxy сможет читать HTTP-трафик мобильного устройства. Но чтобы смотреть расшифрованный трафик HTTPS, нужны дополнительные манипуляции — требуется установить SSL-сертификат Charles Proxy в браузере на мобильном устройстве.
Скачать сертификат можно по адресу: chls.pro/ssl (адрес, по которому скачивается сертификат, также можно найти в инструкции Help -> SSL Proxying -> Install Charles Root Certificate on mobile device remote browser). Далее в iOS его необходимо сделать доверенным (в Настройки -> Основные -> Профили).
В Android установленные сертификаты верифицируются в Settings -> Trusted Credentials на вкладке User.
Главное отличие в настройках для этой ОС в том, что с Android 6.0 и выше в Androidmanifest надо добавить специальную конфигурацию, позволяющую просматривать защищенный трафик. На продакшене эта конфигурация убирается из соображений безопасности.
При тестировании приложения на ПК
В этом случае дополнительные сертификаты нужно установить на сам ПК. Для скачивания и установки нужна ссылка из Help -> SSL Proxying -> Install Charles Root Certificate.
Сертификат устанавливается в доверенные корневые центры.
Два слова об интерфейсе
Интерфейс Charles Proxy прост. Слева — список перехваченных запросов, справа — детали.
В списке запросов есть две основные вкладки — Structure и Sequence.
В первом случае запросы рассортированы по хостам-папкам. Наведя на любой из них, можно получить всю информацию о количестве запросов к этому корневому хосту, доле удачных, таймингах, размерах и т.п. Фактически, здесь представлена вся та же информация, которую можно получить из панели разработчика в браузере. Выбрав конкретный URL, можно увидеть код ответа, версии протоколов, контент и т.п. Тело запроса, заголовки, cookie (если есть) можно посмотреть в разных форматах — даже в HEX.
С помощью контекстного меню запроса можно настраивать блокировки, повторять и изменять запросы. На этом мы еще остановимся.
На вкладке Sequence запросы выведены по времени в виде настраиваемой таблицы. Видно, когда начался запрос, сколько он длился, его размер, статус и т.п. Наведя на конкретную строку, мы получим ту же информацию о теле, заголовках и т.п.
Если запросов на экране слишком много, с помощью панели инструментов их можно очистить или вообще остановить перехват. Там же есть возможность включить и выключить троттлинг (подробнее об этих функциях расскажу позже). Базовая настройка каждой из функций осуществляется через меню, а кнопки панели управления выступают своего рода тумблерами On / Off.
Фильтрация
В Charles Proxy очень много вариантов фильтрации запросов.
Начнем с вкладки Structure. Самое примитивное — скопировать хост и вставить в поле Filter. Так мы увидим только запросы с этого хоста. Примерно того же результата можно добиться, если в контекстном меню хоста выбрать Focus. Остальные запросы будут собраны в Other Hosts.
Если при этом перейти на закладку Sequence и отметить настройку Focused, то в списке окажется информация только о тех запросах, которые были выбраны на вкладке Structure.
На вкладке Sequence есть аналогичный фильтр.
Charles Proxy умеет работать с регулярными выражениями. Для этого на вкладке Sequence выбираем Settings и отмечаем пункт Filter uses regex. И вписываем в поле поиска элементарную регулярку.
Например, вот так
можно выбрать все запросы, в которых в начале имени хоста находится четыре буквы, а потом идет точка.
Там же можно включить Autoscroll списка запросов или указать максимальное количество строк.
В Charles Proxy можно фильтровать не только отображение, но и запись запросов. Для этого надо зайти в Proxy -> Record settings и задать условия на одной из вкладок — Include или Exclude — так мы включаем или выключаем запись запросов данного хоста.
Похожего результата можно добиться, используя блок-листы. Включить хост в блок лист можно из контекстного меню (команда Block list) или через добавление в Tools -> Block list, где следует отметить Enable Block list.
Блокируемый запрос можно прервать двумя способами (подходящий надо выбрать в настройках):
- сбросить соединение;
- вернуть ошибку 403.
От выбранного способа блокировки зависит, какой ответ мы получим.
Можно провести эксперимент. Включим наш тестовый стенд в Block list, выбрав простой сброс соединения. С помощью контекстного меню запроса повторим его (команда Repeat) и получим такой ответ:
Статус запроса — Failed, а в описании ошибки указано, что Connection dropped.
Просмотр SSL-трафика
Если ранее мы успешно установили SSL-сертификат, для просмотра зашифрованного трафика остается только включить SSL proxying для нужного хоста в самом Charles Proxy. Это можно сделать через контекстное меню конкретного хоста.
Чтобы не включать каждый хост, можно зайти в Proxy -> SSL Proxying settings и на первой вкладке SSL Proxying включить Enable SSL Proxying.
Аналогично настройке фильтров на вкладках Include и Exclude можно добавить или исключить конкретные хосты. Если списки на этих вкладках не заполнять, по умолчанию мы будем читать трафик со всех хостов.
Брейкпоинты
Наверное, одна из самых популярных функций Charles Proxy — это настройка точек остановки, которые позволяют перехватывать запросы.
Установить Breakpoint можно из контекстного меню запроса. После этого все аналогичные запросы будут перехвачены. Их можно будет просматривать и редактировать.
Чтобы проверить, как это работает можно использовать повтор запроса (Repeat из того же контекстного меню). Запрос перехватывается, его можно редактировать.
В принципе, изменить можно все — от header до авторизационного токена. Когда редактирование будет закончено, можно выбрать Execute и в Charles Proxy появится повторный запрос, который и отправится на сервер, а потом вернется с ответом. В этот момент можно будет посмотреть и отредактировать ответ, который получит приложение — появится поле Edit response.
Оставайтесь на связи.
Мы в соцсетях:
Редактируя запрос, можно ввести заведомо некорректные данные и посмотреть, как ответит сервер. Также можно отредактировать ответ (внеся некорректные данные) и использовать его для тестирования фронта. Можно оставить корректные данные, но изменить код — посмотреть, как фронт воспринимает информацию, переданную через API.
Map remote
Еще одна популярная функция Charles Proxy — подмена ответа сервера. Так мы можем ответ одного хоста подменить на ответ другого. Настраивается это через Tools -> Map Remote.
Обратите внимание, в левом нижнем углу есть кнопки Import и Export. Они позволяют обмениваться настройками — переносить их с одного рабочего места на другое.
Например, мы можем подменить контура. Я буду посылать запрос на dev-контур, но ответ хочу получить с тестового стенда. Для этого создаем новый пункт в списке Map Remote Settings. Map From — куда изначально был запрос; Map to — откуда берем ответ.
Эта функция может быть полезна, если мы поймали ошибку на продакшене, например при загрузке таблицы, а информации в dev-контуре для полноценного тестирования не хватает. Вместо того, чтобы перезаполнять информацию в каждом контуре, мы можем скопировать ответ сервера в нужный контур и посмотреть, как он ведет себя после исправления ошибки.
Map Local
Главное отличие Map Local от предыдущей функции в том, что замена осуществляется не на ответ другого сервера, а на содержимое локального файла. Настройки выглядят точно также, но вместо второго сервера мы указываем локальный путь к файлу с ответом.
Rewrite
Функция Rewrite может быть полезна, если вам нужно переписать данные, которые отправляются в Charles Proxy. В отличие от простого редактирования Rewrite позволяет задать правила изменения и работать в автоматическом режиме. Можно изменять и добавлять заголовки, искать и заменять текст в теле запроса или ответа. Можно даже менять статус ответа.
Rewrite удобно использовать, когда нужен готовый ответ, но мы не хотим каждый раз ставить брейкпоинт и вписывать его в ручную. Редактируя таким образом ответ, фактически, мы ставим заглушку — можем имитировать работу сторонних партнеров. Честно говоря, в Postman-е эта функция реализована более интуитивно. Но раз мы говорим про Charles, не будем отходить от его примера.
Настроить это можно через Rewrite settings, доступные в контекстном меню. Единственный недостаток инструмента в том, что каждое правило замены прописывается отдельно.
Помимо изменения запросов и ответов мы можем запретить кэширование или cookie (функции No caching и Block cookies). Эти опции повторяют аналогичные инструменты панели разработчика в браузере. В обоих случаях настраивается список хостов, для которых действует настройка. Если же список пуст, то кэширование и cookie отключаются на всех перехваченных хостах.
Throttling
Charles Proxy помогает тестировать сервис на плохой связи, искусственно ограничив через настройки пропускную способность канала. Эта функция полезнее всего для тестирования десктопных приложений, поскольку на мобильных устройствах качеством связи можно управлять через панель разработчика.
Настраивается функция через Proxy ->Throttling settings.
Ограничения можно включить либо для хостов из списка, либо для всех перехваченных запросов. Из коробки есть несколько пресетов, но все параметры связи можно корректировать вручную. Мне по большей части хватает базовых настроек.
Repeat Advanced
Хотя полноценное нагрузочное тестирование лучше проводить в специальных инструментах, Charles Proxy имеет одну базовую настройку, которая помогает закрыть минимальные потребности. Функция Repeat Advanced (доступная через контекстное меню перехваченного запроса) позволяет нужное количество раз повторить тот же запрос. После настройки откроется отдельная сессия, где будут видны детали каждого из запросов.
Конечно, список функций Charles Proxy этим не ограничивается. Есть еще много полезного — от перенаправления доменного имени на другой IP-адрес, до автоматического сохранения полученных ответов.
Отмечу, что Charles Proxy платный. Можно использовать триальную версию. Но раз в 5-7 минут поверх него будет отображаться всплывающее окно с версией, а раз в 30 минут он будет выключаться, при этом сессии не сохраняются. Решайте сами, помешает ли это вашей работе.
В целом Charles Proxy — это хороший инструмент. Не сказал бы, что он сильно отличается от того же Fiddler-а, но на мой взгляд он больше заточен под MacOS, поскольку пришел на эту платформу раньше. Хотя сейчас уже нельзя сказать, что какой-то сниффер принципиально лучше или хуже. Все они решают примерно одни и те же задачи сходным образом.
Автор статьи: Артем Холевко, Максилект.
Текст подготовлен по материалам внутреннего семинара Максилект.
Наши статьи по теме:
- Развиваем софт скиллы под удаленку
- Полгода без тестировщика
- Умный дом без маркетинга и хайпа от тех, кто пользуется им вдолгую
- Радиоуправляемая машинка на Arduino для преодоления мини-бездорожья
- Почему я советую писать статьи именно сейчас
Источник: maxilect.ru
Как пользоваться Charles
Charles — это программа, которая позволяет пользователю отслеживать абсолютно все данные, которые передаются между его собственным компьютером и всей сетью Интернет. Конкретнее, она выдаёт информацию обо всех запросах, ответах (requests, responses) и http заголовках, которые включают в себя информацию из кэша и cookies.
Тому, кто пользуется Charles, программа показывает весь трафик “как папки” с названиями серверов. В каждой папке содержатся запросы, они и демонстрируют, каким образом на данный момент этот сервер взаимодействует с вашим компьютером.
Инструкция по использованию Charles
1. Скачать и Установить Charles не сложно. Просто запустите файл .exe программы SETUP, на все вопросы и предложения ничего не меняйте (если вы не продвинутый пользователь — пока не будем на этом останавливаться), и программа установится на компьютер.
2. Как работать с Charles? Чтобы начать записывать трафик или остановить эту запись, нужно нажать кнопку «Start/Stop Recording» — она расположена на панели инструментов программы (белый круг, а на нём точка). После нажатия на Start становиться интуитивно понятно, как пользоваться Charles.
3. Если Charles почему-либо не связан с нужным сервером, т.е. папка этого сервера не отображается, проверьте — возможно, вы добавили этот сервер в игнорирование. Зайдите в меню таким образом: Proxy->Recording->Settings — и посмотрите, нет ли сервера в графе Ignore Hosts. Если он есть, то удалите его из игнорирования кнопкой Remove. (Отметим, что простая переустановка программы не помогла бы — сервер всё равно остался бы в списке игнорирования).
4. Чтобы отредактировать в Charles какой-то конкретный запрос, щёлкните правой кнопкой по строчке (скажем, gateway.php), и выберите «Edit», то есть «Редактировать». Внесите все необходимые изменения, нажмите внизу Execute, и запрос успешно отправится на сервер.
5. Если вы хотите заставить Charles перехватывать с нужного сервера запросы, нажмите правой кнопкой по папке сервера в вашем общем списке и далее выбирайте из контекстного меню Breakpoints. Потом в панели инструментов Charles нажмите на шестиугольник красного цвета (на нём будет надпись Enable/Disable Breakpoints), и программа будет восстанавливать все исходящие и входящие запросы, связанные с этим сервером. Вы можете потом редактировать эти запросы, или сразу же отправлять их кнопкой Execute. Те запросы, которые исходят к серверу от вас, будут отображаться с красными стрелками вверх, а входящие, т.е. ответы от сервера — со стрелкой вниз.
6. Как пользоваться Charles с браузером Firefox. Перед тем, как начать ей пользоваться, нужно установить специальный плагин, чтобы Charles успешно контролировал запросы. Подробнее здесь: http://www.charlesproxy.com/charles.xpi
- Если у вас нет «огнелиса», то можно ли пользоваться программой Charles через другие браузеры? Да, конечно.
- Во-первых, Opera. Её нужно настроить, зайдите в «Прокси-серверы», отметьте галочки https, http и введите необходимые данные: IP 127.0.0.1, порт 8888. Нажимайте «ОК». Всё, браузер готов к работе.
- Во-вторых, Google Chrome. Здесь тоже не сложно. «Параметры > Изменить настройки прокси-сервера», там ищете вкладку «Подключения» и вводите те же IP-адрес и порт. После этого можно пользоваться Charles на Гугл Хром.
7. При работе Charles может возникнуть ошибка Java. Такое бывает, если вы работаете под Windows 7, Java в ней отсутствует, и при этом установили 64-битную версию программы. Попробуйте удалить её и установить обычную.
Источник: osdaily.ru