Что такое charles proxy

Charles Proxy Server — с чего начать?

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Зачастую, при тестировании мобильных (да и web) клиент-серверных приложений бывают ситуации, когда нужно проверить как ведёт себя приложение при разном объеме данных, в каком формате приложение отправляет и получает данные, какие параметры у запроса и ответа, какой ответ присылает сервер при некорректном запросе, как реагирует приложение на некорректный ответ, как оно обрабатывает ошибки. Всё это можно относительно просто проверить при помощи Charles Proxy Server.

1. Установка и запуск

Скачиваем Charles Proxy с официального сайта, устанавливаем, запускаем (помним, что бесплатно можно пользоваться 30 дней). После запуска Charles предложит сам настроить сетевые подключения для работы:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Соглашаемся. Далее откроется интерфейс инструмента:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Слева (Structure/Sequence) будут отображаться соединения, внутри которых можно будет увидеть запросы. В правой части будут отображаться параметры запроса.

2. Настройка мобильного устройства

Чтобы Charles мог мониторить весь входящий и исходящий трафик на устройстве, в настройках Wi-Fi подключения на устройстве нужно прописать IP-адрес хоста с запущенным Charles и указать порт 8888 (по умолчанию). В самом Сharles в настройках прокси нужно удостовериться что стоит порт 8888 (при необходимости можно изменить). Итак, проверка настроек Charles:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

И настройка Wi-Fi подключения на смартфоне (в данном примере использовался iPhone):

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Начиная с этого момента, в Charles мы можем видеть адреса, к которым обращается смартфон.

3. Последние штрихи настройки

Далее, возвращаемся к настройке самого Charles. Во-первых, если нас интересует конкретный адрес, а весь остальной трафик является шумом, то нужно кликнуть по интересующему нас адресу и выбрать пункт “Focus”. Это позволит скрыть все лишние адреса во вкладке “Other Hosts” (см. картинку ниже). Как было упомянуто выше, адреса серверов, на которые смартфон отсылает запросы нам видны, но мы не можем видеть параметры запросов:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Для того, чтобы Charles мог увидеть параметры запроса, нужно прописать адрес сервера в SSl Proxy Settings. Это можно сделать следующим образом:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Теперь если отправить запрос на соответствующий сервер, то можно увидеть параметры запросов:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

4. Модифицирование запросов и ответов

Итак, запросы к нужному серверу для нас теперь абсолютно прозрачны, но Charles интересен не только возможностью мониторинга запросов, но и возможностью их модификации. Например, можно изменить какой-либо параметр в заголовке или в теле запроса и посмотреть что вернёт нам сервер, или же наоборот, отправить правильный запрос, но модифицировать ответ, чтобы проверить ситуации, когда сервер может возвращать некорректные данные или когда нужно показать лишь часть данных. Сейчас нас интересует инструмент Rewrite:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Этот инструмент как раз и позволяет вносить нужные нам изменения в запросы. По-умолчанию, там ничего нет, следовательно, нам нужно добавить первую опцию, например, на изменение запроса.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Далее нужно понять что именно мы хотим изменить в конкретном запросе. Например, нужно проверить, как поведёт себя серверная часть приложения в том случае, если клиент пришлёт некорректный запрос (будет отсутствовать одно поле или в поле будет неверный тип данных). Сообщит ли нам сервер об ошибке? Лучше, конечно, проверять, реакцию клиента на некорректный ответ сервера, потому что такая ситуация наиболее вероятна. Набор действий в любом случае идентичен. Под полем Location нужно кликнуть Add, а затем можно поставить значение * (в этом случае перезапись будет работать для всех запросов), либо указать конкретный URL и конкретный path.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

После того как был задан адрес, по которому нужно произвести замену, нужно указать что конкретно следует изменить. В нашем случае это тело запроса.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

После сохранения и клика по кнопке Apply, Charles начнёт изменять все запросы по указанной связке URL+path в соответствии с заданным правилом. В данном случае в запросе будет передаваться JSON <“field”:”value”>. Подобным образом можно менять тело ответа, приходящего с сервера. Также можно изменять URL, заголовки, параметры запроса, код состояния HTTP.

Послесловие: В данной статье я постарался как можно более просто, но в то же время подробно описать инструкцию по работе с Charles Proxy Server. По сути, данная статья — агрегатор документации, размещенной на официальном сайте.

Источник

Начинающему QA: полезные функции снифферов на примере Charles Proxy

В этой статье я расскажу об основных функциях снифферов, которые могут быть полезны QA. Попробую не вдаваться в теорию, а сфокусироваться на практике. Наиболее популярными представителями анализаторов трафика сейчас являются WhireShark, Fiddler и Charles Proxy. Об удобстве интерфейсов и функционале каждого из них можно рассуждать долго, учитывая все плюсы и минусы. Но здесь я отдал предпочтение Charles, поскольку сам им активно пользуюсь. Буду рассказывать на его примере.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что собой представляет Charles Proxy

Первичная настройка

При тестировании мобильного приложения

Charles Proxy необходимо запустить на компьютере, который находится в той же локальной подсети, что и мобильное устройство с тестируемым приложением.

Как правило, соединение настраивается по Wi-Fi. В настройках Wi-Fi мобильного устройства в качестве proxy-сервера надо указать IP-адрес компьютера и стандартный порт инструмента 8888 (пароль остается пустым).

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Главное отличие в настройках для этой ОС в том, что с Android 6.0 и выше в Androidmanifest надо добавить специальную конфигурацию, позволяющую просматривать защищенный трафик. На продакшене эта конфигурация убирается из соображений безопасности.

При тестировании приложения на ПК

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Сертификат устанавливается в доверенные корневые центры.

Два слова об интерфейсе

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

С помощью контекстного меню запроса можно настраивать блокировки, повторять и изменять запросы. На этом мы еще остановимся.

На вкладке Sequence запросы выведены по времени в виде настраиваемой таблицы. Видно, когда начался запрос, сколько он длился, его размер, статус и т.п. Наведя на конкретную строку, мы получим ту же информацию о теле, заголовках и т.п.

Если запросов на экране слишком много, с помощью панели инструментов их можно очистить или вообще остановить перехват. Там же есть возможность включить и выключить троттлинг (подробнее об этих функциях расскажу позже). Базовая настройка каждой из функций осуществляется через меню, а кнопки панели управления выступают своего рода тумблерами On / Off.

Фильтрация

В Charles Proxy очень много вариантов фильтрации запросов.

На вкладке Sequence есть аналогичный фильтр.

Charles Proxy умеет работать с регулярными выражениями. Для этого на вкладке Sequence выбираем Settings и отмечаем пункт Filter uses regex. И вписываем в поле поиска элементарную регулярку.

можно выбрать все запросы, в которых в начале имени хоста находится четыре буквы, а потом идет точка.

Там же можно включить Autoscroll списка запросов или указать максимальное количество строк.

Блокируемый запрос можно прервать двумя способами (подходящий надо выбрать в настройках):

вернуть ошибку 403.

От выбранного способа блокировки зависит, какой ответ мы получим.

Можно провести эксперимент. Включим наш тестовый стенд в Block list, выбрав простой сброс соединения. С помощью контекстного меню запроса повторим его (команда Repeat) и получим такой ответ:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Просмотр SSL-трафика

Если ранее мы успешно установили SSL-сертификат, для просмотра зашифрованного трафика остается только включить SSL proxying для нужного хоста в самом Charles Proxy. Это можно сделать через контекстное меню конкретного хоста.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Аналогично настройке фильтров на вкладках Include и Exclude можно добавить или исключить конкретные хосты. Если списки на этих вкладках не заполнять, по умолчанию мы будем читать трафик со всех хостов.

Брейкпоинты

Установить Breakpoint можно из контекстного меню запроса. После этого все аналогичные запросы будут перехвачены. Их можно будет просматривать и редактировать.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Чтобы проверить, как это работает можно использовать повтор запроса (Repeat из того же контекстного меню). Запрос перехватывается, его можно редактировать.

Map remote

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Эта функция может быть полезна, если мы поймали ошибку на продакшене, например при загрузке таблицы, а информации в dev-контуре для полноценного тестирования не хватает. Вместо того, чтобы перезаполнять информацию в каждом контуре, мы можем скопировать ответ сервера в нужный контур и посмотреть, как он ведет себя после исправления ошибки.

Map Local

Главное отличие Map Local от предыдущей функции в том, что замена осуществляется не на ответ другого сервера, а на содержимое локального файла. Настройки выглядят точно также, но вместо второго сервера мы указываем локальный путь к файлу с ответом.

Rewrite

Функция Rewrite может быть полезна, если вам нужно переписать данные, которые отправляются в Charles Proxy. В отличие от простого редактирования Rewrite позволяет задать правила изменения и работать в автоматическом режиме. Можно изменять и добавлять заголовки, искать и заменять текст в теле запроса или ответа. Можно даже менять статус ответа.

Настроить это можно через Rewrite settings, доступные в контекстном меню. Единственный недостаток инструмента в том, что каждое правило замены прописывается отдельно.

Помимо изменения запросов и ответов мы можем запретить кэширование или cookie (функции No caching и Block cookies). Эти опции повторяют аналогичные инструменты панели разработчика в браузере. В обоих случаях настраивается список хостов, для которых действует настройка. Если же список пуст, то кэширование и cookie отключаются на всех перехваченных хостах.

Throttling

Charles Proxy помогает тестировать сервис на плохой связи, искусственно ограничив через настройки пропускную способность канала. Эта функция полезнее всего для тестирования десктопных приложений, поскольку на мобильных устройствах качеством связи можно управлять через панель разработчика.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Ограничения можно включить либо для хостов из списка, либо для всех перехваченных запросов. Из коробки есть несколько пресетов, но все параметры связи можно корректировать вручную. Мне по большей части хватает базовых настроек.

Repeat Advanced

Хотя полноценное нагрузочное тестирование лучше проводить в специальных инструментах, Charles Proxy имеет одну базовую настройку, которая помогает закрыть минимальные потребности. Функция Repeat Advanced (доступная через контекстное меню перехваченного запроса) позволяет нужное количество раз повторить тот же запрос. После настройки откроется отдельная сессия, где будут видны детали каждого из запросов.

Отмечу, что Charles Proxy платный. Можно использовать триальную версию. Но раз в 5-7 минут поверх него будет отображаться всплывающее окно с версией, а раз в 30 минут он будет выключаться, при этом сессии не сохраняются. Решайте сами, помешает ли это вашей работе.

Автор статьи: Артем Холевко, Максилект.

Текст подготовлен по материалам внутреннего семинара Максилект.

Источник

Погружение в удивительный мир Charles для чайников

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

В сегодняшней статье я вам поведаю о том, как пользоваться программой Charles, мощным инструментом для тестирования веб-сервисов, в перечень возможностей которого входит перехватывание запросов, их подмена и перенаправление на локальные файлы.

Charles работает и на мобильных устройствах, но в этой статье мы будем рассматривать только версию для Windows. Давайте же начнем!

Установка Charles

Начать следует, конечно же, с установки. Скачиваем программу с официального сайта разработчика.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Программа платная, но есть тестовый период на 30 дней. Даже без покупки программой можно спокойно пользоваться, но время одной сессии будет ограничено 30 минутами, а также частенько на 5-10 секунд будет появляться оверлей.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Вы можете получить полную версию программы сами-знаете-какими методами, но мы их рассматривать не будем. Все же лучше поддержать разработчиков!

После скачивания следует запустить exe-файл и произвести инсталляцию. Здесь ничего сложного нет, просто оставьте стандартные настройки установки.

Настройка программы

После установки программу следует настроить. Многие пользователи Charles забывают об этом этапе, а затем кусают локти, пытаясь понять, почему у них ничего не работает. На самом деле настройка программы очень простая, сейчас все покажу!

Для начала нужно установить сертификат программы. Именно из-за него, увы, и возникает большинство проблем, связанных с неработоспособностью программы.

Инструкция по установке сертификата:

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Жмем «Установить сертификат».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Здесь выбираем «Локальный компьютер» и жмем «Далее».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

ВАЖНО! На этом этапе выбираем «Поместить все сертификаты в следующее хранилище», жмем «Обзор», затем ОБЯЗАТЕЛЬНО выбираем «Доверенные корневые центры сертификации».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyЖмем «Далее».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Установку сертификата мы выполнили, теперь нам необходимо включить SSL Proxying и настроить его фильтрацию, чтобы начать перехватывать запросы. Фильтрация определяет, какие именно запросы нужно ловить, но мы сделаем так, чтобы у нас перехватывались все запросы.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Ставим галочку на «Enable SSL Proxying», затем под полем «Include» жмем на кнопку «Add».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Программа настроена. Теперь рассмотрим ее возможности и функции.

Compose

Данная функция позволяет нам отправить копию выбранного запроса с измененными параметрами.

Нам достаточно выбрать один конкретный запрос и с помощью функции Compose поменять его параметры (заголовок запроса, тело запроса, куки, код и пр.)
Для начала мы можем отделить конкретные запросы от остальных с помощью функции Focus :

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

У нас создается копия запроса, в которой мы можем менять все, что нам нужно: тело, шапку, тип запроса, версию HTTP и т.д.

Например, можно подменять некоторые значения в коде, чтобы проверить валидацию на бэкенде. Допустим, поле принимает только числовое значение. Мы используем Compose, передавая в значение поле уже буквы. Если запрос пройдет без ошибок, то это значит, что валидация отсутствует.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

После изменения нужных нам параметров жмем « Execute » и получаем копию запроса с ответом от сервера.

Breakpoint

Данная функция позволяет точнее работать с запросами, вешая на них так называемый «Breakpoint» (точку остановки).

Ниже показано, как через настройки добавить запрос в список Breakpoint. После повторного получения указанного вами запроса в программе откроется отдельная сессия, в которой вы сможете спокойно работать с ним.

Отмечу, что эта функция, по сути, делает автоматический Compose. Вы так же можете менять значения, но вам не придется каждый раз выбирать конкретный запрос.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Ставим галочку на «Enable Breakpoints», затем жмем «Add».

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Заполняем все поля в открывшемся окне (выше пример заполнения).

При повторном получении запроса с такими же данными у вас будет открываться новое окошко, в котором вы сможете работать с пойманным запросом. Удобно!

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Rewrite

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Rewrite» src=»https://timeweb.com/media/image9.png» title=»» />

Ставим галочку на «Enable Rewrite», затем в открывшемся окне под левым полем жмем «Add», а дальше жмем «Add» уже под правым верхним полем.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Заполняем все поля (они идентичны тем, что заполняются при создании Breakpoint).

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Затем жмем «Add» уже под правым нижним полем, указываем тип редактирования запроса, заменяемые значения, а также условия замены.

Давайте поймаем запрос и посмотрим на реакцию Charles!

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Charles поймал нужный запрос, а затем заменил все Header одним значением.

Repeat Advanced

Данная функция будет полезна для нагрузочного тестирования. Хоть Charles и не блещет особым потенциалом в данной области, но базовую проверку корректности флуд-контроля вы сможете выполнить.

Ниже подробно показано, как это сделать.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Здесь настраиваем все в соответствии с указаниями на приложенной выше картинке.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Должно открыться новое окно, где отправляются запросы.

Map Local

Последняя функция в сегодняшней статье. Позволяет работать с локальными файлами.

Демонстрация инструмента ниже.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

При повторном получении того же запроса Charles будет перенаправлять его на локальный файл.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Надеюсь, эта статья помогла вам разобраться в основах Charles. Это действительно мощный и довольно простой инструмент для тестирования. Спасибо за внимание!

Источник

Битва Charles и Fiddler: как тестировать с комфортом?

Всем привет! Меня зовут Ксения Мерзлозубова, и я тестирую мобильные приложения в компании ATI.SU.

Для тестирования большинства задач мобильному тестировщику необходим сниффер — инструмент для перехвата и анализа трафика. Сейчас существует множество снифферов, но самые популярные — это Charles и Fiddler. В этой статье я опишу их достоинства и недостатки, обращу внимание на фичи, удобство использования, дизайн и еще некоторые нюансы. Снифферы всегда помогают мне при ручном тестировании, поэтому надеюсь, что и вы сможете выбрать один из них или будете использовать все.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Добавлю, что у Fiddler существует 2 версии: Classic и Everywhere. Расскажу про обе.

Charles

Тестировщики обычно называют его «Чарльз» или ласково «Чарлик». Для начала обсудим основные плюсы этого сниффера.

Плюсы

Кроссплатформенность. Есть версии на Mac OS, Windows и Linux. Это очевидное преимущество, если каждый из ваших коллег выбрал себе рабочую ОС по душе, и нужен общий инструмент для тестирования.

Удобная панель инструментов с такими функциями как очищение сессии, редактирование и перевыполнение запроса, остановкой перехвата трафика и другими.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyПанель инструментов

Классификация запросов по хостам. У сниффера есть экраны Structure и Sequence. На экране Sequence перехваченные запросы отображаются последовательно, а на экране Structure еще и с группировкой по хостам. Для удобства можно настроить фокус на определенный хост. Тогда остальные запросы попадут в группу Other hosts. Этот вариант подойдет, если вы тестируете небольшую группу запросов к одному хосту, а остальные в текущий момент не важны.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Возможность экспортировать настройки. Например, можно попросить коллегу экспортировать настройки Charles и загрузить их себе, чтобы не настраивать все опции вручную. Настройки экспортируются в формате xml.

Возможность просматривать несколько сессий в соседних закладках. Здесь под «сессией» я подразумеваю один сеанс перехвата трафика. Например, вы воспроизводите сложный баг, и вам нужно повторить его дважды, чтобы сравнить траффик. Тогда можете использовать для каждого повтора отдельную сессию, а затем переключаться между ними.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Современный интерфейс. В отличие от Fiddler Classic, у которого интерфейс напоминает десктопные приложения из 2000-х, Charles выглядит актуальнее.

Минусы

Нет возможности наложить таймаут на запрос. При тестировании часто требуется проверить, как поведет себя конкретный запрос при задержке ответа и нестабильном интернете. К сожалению, Charles позволяет создать такую задержку только для хоста. Настройка влияет на все запросы указанного хоста, а их может быть очень и очень много. Найти настройку можно так: Proxy — Trottle Settings.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyTrottle Settings

Нет возможности экспортировать сессию в формате txt или json. Теперь под «сессией» я подразумеваю запрос и ответ вместе, одним файлом. Charles предлагает форматы chls, csv, trace, har и другие.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyФорматы экспорта сессии

Документация без скриншотов и видео. У этого сниффера есть документация на официальном сайте, и она целиком состоит из текста. На мой взгляд, документация платного инструмента должна быть как минимум дополнена поясняющими скриншотами, а еще лучше видео.

Это платный инструмент. В отличие от Fiddler Classic, у Charles бесплатный только триальный период в 30 дней. Однако, этот минус сомнительный, т.к. хороший инструмент и должен быть платным.

Fiddler Classic

Этот инструмент долгое время был моим любимчиком, так как с него я начинала изучение снифферов.

Плюсы

Удобная подмена ответов. Чтобы подменить ответ, в Fiddler Classic достаточно перетащить запрос на закладку AutoResponder. Далее можно выбрать вариант ответа в Rule Editor или нажать Edit Response и дать волю фантазии.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyAutoResponder в Fiddler Classic

Для сравнения, чтобы подменить ответ в Charles, придется:

Копировать url; Добавить настройку подмены (Rewrite).

Вставить скопированный url.

Создать новое правило подмены (Rewrite rule) для url.

Выбрать тип подмены. Например, Body или Status.

Выбрать, в запросе или в ответе сделать подмену.

Допустим, вы подменяете тело ответа (Body). Тогда нужно заготовить измененное тело заранее и вставить в поле Value.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyRewrite в Charles

На самом деле шаги не сложные, но путь к подмене ответа длиннее, чем в Fiddler. В качестве альтернативы в обоих снифферах есть возможность подменять ответ на файл.

Много функций вынесены на панель инструментов. На мой взгляд, панель инструментов Fiddler Classic менее удобная, чем у Charles, но разработчики постарались вынести на нее большое количество опций.

Возможность цветового выделения запросов. Для наглядности, можно выделить запрос другим цветом. В Charles я не нашла подобной функции.

Бесплатный инструмент. Из трех инструментов, которые я сравниваю, только Fiddler Classic абсолютно бесплатно можно скачать с официального сайта.

Два способа редактирования запросов. В Fiddler и Charles есть аналогичные способы редактирования запросов. Они позволяют менять любую часть запроса. Покажу их на скриншотах ниже.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyРедактирование запроса в Fiddler Classic Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyРедактирование запроса в Charles

Однако в Fiddler есть и второй способ: использование редактора запросов Composer. Основное преимущество этого способа в том, что в Composer есть лог измененных и выполненных запросов. В нем очень просто найти запрос, который вы меняли ранее и вернуться к его редактированию.

Документация. Просто почитайте ее на официальном сайте.

Минусы

Только под Windows. Для других ОС на официальном сайте Fiddler предлагается скачать Fiddler Everywhere, о котором я расскажу позже в этой статье.

Устаревший дизайн интерфейса. Этот пункт выглядит очень субъективно, но с ним согласны большинство моих коллег.

Редактирование ответа только в текстовом формате. В AutoResponder есть встроенный редактор ответа. Если ответ содержит множество вложенных структур и полей, то читать его в текстовом виде крайне неудобно, а редактирование в формате json отсутствует. Также нет поиска по тексту в редакторе, поэтому быстро найти нужное поле не получится. Однако, выход есть — можно использовать отдельный текстовый файл для подмены ответа.

Fiddler Everywhere

Перейдем к новому Fiddler. Судя по списку релизов на официальном сайте, этот сниффер появился в 2018 году.

Плюсы

Кроссплатформенность. В отличие от предшественника, у Fiddler Everywhere есть версии под Mac OS, Windows и Linux.

Удобные фильтры запросов. Перехваченные запросы отображаются на закладке Life Traffic. Там можно настроить, какие столбцы показывать, а какие скрывать. Также есть фильтры по каждому столбцу. Если использовать фильтры по нескольким столбцам, то они применяются вместе.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxyLife Traffic

Сохранение сессий внутри инструмента — это преимущество по сравнению с Charles и Fiddler Classic, где сессии нужно экспортировать в файл для сохранения.

Отправка сессий другим пользователям. В Fiddler Everywhere можно поделиться сессией с коллегой, указав его email, если он тоже пользуется этим инструментом. Тут «сессия» — это один или несколько запросов.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Современный интерфейс. В отличие от Fiddler Classic, этот сниффер может похвастаться более актуальным интерфейсом, который напоминает привычный многим тестировщикам Postman.

Улучшенный Composer. В Fiddler Everywhere редактор запросов Composer получил функционал и дизайн, аналогичный Postman, за исключением некоторых функций. Например, нет возможности использовать переменные, писать скрипты или использовать раннер для запуска коллекций.

Что такое charles proxy. Смотреть фото Что такое charles proxy. Смотреть картинку Что такое charles proxy. Картинка про Что такое charles proxy. Фото Что такое charles proxy

Сохранение коллекций. В отличие от Charles и Fiddler Classic в этом сниффере можно сохранять запросы в коллекции и давать им названия.

Документация. У Fiddler Everywhere есть подробная документация на официальном сайте.

Минусы

Нет брейкпоинтов. Брейкпоинты позволяют останавливать выполнение запроса и на ходу изменять его. Многие тестировщики привыкли к ним в Charles и Fiddler Classic. На текущий момент есть просьбы пользователей сделать breakpoints к команде разработчиков Progress Telerik. Вот еще пример. Судя по ответам, этот функционал есть в планах на будущее.

Платный инструмент. У сниффера есть бесплатный триальный период в 30 дней, а далее можно выбрать тарифный план.

Дополнительно

Добавлю, что большая часть функционала описанных снифферов совпадает. Они все отлично справляются с редактированием запросов, экспортом и импортом сессий, поиском по части запроса, поэтому на этих функциях я не останавливалась в статье.

В зависимости от проекта и задачи, тестировщику может потребоваться разный функционал сниффера. Если вам приглянулся какой-то инструмент, рекомендую попробовать его на практике, так как ваши рабочие потребности могут отличаться от моих.

Если у вас есть, что сказать по теме статьи, буду рада комментариям!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *