Программа чарльз как пользоваться

Charles — это широко используемый инструмент перехвата сетевых пакетов под Mac. При разработке мобильных приложений нам часто приходится перехватывать сетевые пакеты для анализа, чтобы отладить протокол сетевой связи с сервером. Чарльз устанавливает себя в качестве прокси-сервера доступа к сети, чтобы через него выполнялись все запросы на доступ к сети, что позволяет осуществлять перехват и анализ сетевых пакетов. Помимо отладки портов в разработке мобильных устройств, Чарльза также можно использовать для анализа протоколов связи сторонних приложений. С помощью функции Чарльза SSL Чарльз также может анализировать протокол Https.

  • Основные функции Чарльза включают в себя:
  1. Перехват сетевых пакетов Http и Https.
  2. Поддержка повторной отправки сетевых запросов для облегчения внутренней отладки.
  3. Поддержка для изменения параметров сетевого запроса.
  4. Поддержка перехвата и динамического изменения сетевых запросов.
  5. Поддерживает моделируемую медленную сеть.

Charles Установите Чарльза в качестве системного агента

Чарльз завершает перехват пакетов, устанавливая себя в качестве прокси-сервера, поэтому первым шагом использования Чарльза является его установка в качестве прокси-сервера системы. При первом запуске Charles вам будет предложено дать разрешение на настройку прокси-сервера системы. Вы можете ввести логин-пароль, чтобы предоставить Чарльзу это разрешение. Вы также можете проигнорировать запрос, и когда вам нужно установить Charles в качестве системного прокси, выберите «Proxy» -> «Mac OS X Proxy» в меню, чтобы установить Charles в качестве системного прокси.

Обзор Charles Proxy | Что такое Charles Proxy | Установка Charles Proxy

  • Зачем настраивать системный прокси?
  • Чарльз не только перехватывает пакеты с мобильного телефона пользователя, но также может использоваться для перехвата пакетов на локальном компьютере, он устанавливается в качестве системного прокси-сервера для перехвата сетевых запросов, отправленных компьютером.

314490-ebd11e77b3d34bb6.png

Чарльз назначен системным агентом

③ Установить сертификат Https на компьютер

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

Первый шаг: установить сертификат в систему (то же самое для Windows):

Нажмите меню Справка-> SSL-> Проксирование-> Установить корневой сертификат charles в меню Charles.

314490-94450c003a8660f8.jpg

Установите доверенный сертификат на Mac

Шаг 2: Доверяйте сертификат только сейчас в связке ключей к компьютеру:

314490-005e7eec246cddf3.png

Установите доверенный сертификат на Mac

Charles proxy установка, настройка, подключение телефона. Как настроить Charles proxy.

Шаг 3: Настройте хост дешифрования:

1. Нажмите кнопку Настройки на панели инструментов Чарльза и выберите Настройки прокси .

Перейдите на вкладку SSL и выберите Включить SSL-прокси.

2. Заполните имя домена и порт для захвата в разделе «Расположение» на вкладке SSL, нажмите кнопку «Добавить» и введите имя домена для хоста во всплывающей форме. Например, заполните api.baidu.com и введите 443 для порта

314490-2a7f2f522903f113.jpg

Настройки SSL на Mac

Xy прокси мобильного телефона

Настройте Чарльз прокси

1. Запустите программу Charles и установите порт
Proxy —> ProxySettings —> Proxies —> httpProxy

Источник: russianblogs.com

Программа чарльз как пользоваться

ВРЕМЯ ПРОЧТЕНИЯ — 10 МИН

Ангелы Charles:
Как сниффер поможет разработчикам мобильных приложений

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

Читайте также:
Directx программе установки не удалось загрузить файл повторите

Обложка статьи про дизайн складных экранов для Андроид

Для начала кратко приведем примеры кейсов разработчиками:

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

Throttling соединения

Одна из функций Charles — троттлинг соединения, который позволяет симулировать различное поведение Сети.
Инструмент позволит узнать, как приложение будет работать, например, в ситуации нестабильного интернет-соединения или его внезапного отсутствия.

Включить функцию троттлинга можно в меню Proxy, выбрав там пункт «Throttle Settings».

Давайте посмотрим на все настройки функции.

Enable Throttling — это чекбокс включения/отключения троттлинга по приложению. Можно поставить чекбокс на Only for selected hosts — это позволит проводить троттлинг только для заданных url.
Их можно добавить или удалить ниже (Add и Remove).

Далее в меню вы видите набор предустановленных настроек соединений (Throttle preset).

Bandwidth — это скорость соединения,
Utilisation — процент пропускной способности, которую можно предоставить пользователю в любой момент времени.
Round-trip latency — здесь устанавливается задержка между клиентом и сервером.
MTU — максимальный размер пакета.
Reliability, измеряемая в процентах, устанавливает вероятность, что соединение не удастся. Именно эта кнопка нужна для имитации ненадежных сетевых условий. Кнопка Stability задает вероятность нестабильного соединения и снижения качества. Это полезно для моделирования сетей, в которых периодических падает качество связи — например, мобильных.

Throttling может работать даже при установленном в приложении SSL пиннинге — достаточно настроить его и убрать Enable SSL Proxying с запросов необходимого домена.

Источник: cleverpumpkin.ru

Charles для начинающего QA: от настройки до использования

Всем привет, меня зовут Роман, я тестировщик в компании СберМегаМаркет.

Итак, по первой ссылке в гугле на запрос «Charles что такое», можно найти примерно следующее: Charles – один из самых распространенных инструментов для сниффинга трафика. В свою очередь, сниффинг трафика – это перехват и анализ сетевого трафика.

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

Особенно обширно Charles применяется в мобильном тестировании, ввиду того, что это один из самых простых и удобных способов посмотреть, уходят ли запросы с мобильного клиента, с какими параметрами они отправляются и как отвечает backend. Дальше в статье расскажу о Charles для начинающего QA.

Подключение Android-девайса к Charles

Для начала необходимо подружить телефон, с которого мы будем сниффить трафик, и Charles.

1. Скачиваем программу с официального сайта Charles.

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

2. После успешной установки открываем программу и попадаем в главное окно.

3. Сверху жмем Help ~> SSL Proxying ~> Install Charles Root Certificate.

Таким образом мы установим корневой сертификат в систему, чтобы Charles мог работать с https-запросами.

4. После установки в списке сертификатов видим сертификат Charles.

5. Открываем свойства сертификата.

6. В открывшемся окне, в пункте «Доверие», проверяем, что везде указан параметр «Всегда доверять».

7. После этого можно закрыть все окна, связанные с сертификатами. Далее идем в Help ~> SSL Proxying ~> Install Root Certificate on a Mobile Device or Remote Browser.

Читайте также:
Как сделать свою реферальную программу

Должно открыться окно с ip и портом, по которому можно достучаться до Charles.

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

8. Берем в руки девайс и переходим в настройки Wi-Fi сети.

Чтобы все получилось, необходимо, чтобы компьютер и телефон были подключены к одному Wi-Fi, а vpn был выключен как на телефоне, так и на компьютере. Иначе есть вероятность того, что Charles не сможет обнаружить телефон.

9. В настройках Wi-Fi на телефоне заходим в настройки сети (на телефонах марки Samsung – шестеренка рядом с названием сети Wi-Fi, на телефонах марки Huawei необходимо нажать и удерживать палец на наименовании Wi-FI сети и выбрать «Изменить сеть»).

Далее в пункте «Прокси» выбираем параметр «Вручную».

В поле «Имя узла прокси» вводим ip: например, 192.168.1.64:

В поле «Порт прокси» указываем порт: например, 8888:

Должно получиться следующее:

 Жмем кнопку «Сохранить»

После того, как сохранили настройки сети, в окне Charles должно появиться уведомление с просьбой разрешить или отклонить доступ к девайсу. Жмем «Разрешить»/«Allow».

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

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

11. После скачивания сертификата открываем настройки – на Samsung в поиске пишем «Установить из памяти» – Сертификат Wi-Fi – выбрать папку Download – Выбрать сертификат Charles и установить его. Для Huawei и других устройств можно просто нажать на сертификат и установить его, выбрав пункт «Установка для Wi-Fi».

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

Если есть проблема с тем, что некоторые запросы не отображаются, необходимо сделать следующее: Proxy ~> SSL Proxying Settings ~> Во вкладке SSL Proxying и графе Include нажать Add ~> В поле Host и Port указать «*» и нажать «Ок».

Эта настройка принудительно включает проксирование трафика с любого хоста и порта.

Подключение iOS-девайса к Charles

Для подключения iOS-девайса к Charles необходимо проделать те же шаги, что и для Android-девайса, однако, в пункте 13 необходимо сделать доверенным установленный сертификат. Для этого необходимо перейти в Настройки – Основные – Об этом устройстве – Пролистать в самый низ экрана – Доверие сертификатам – Включить доверие для сертификата Charles.

Как и для чего мы в СберМегаМаркете используем Charles: на примере тестирования Android-приложения

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

Во-вторых, одна из самых полезных и незаменимых фич в Charles – это подмена ответа с backend. Это можно сделать с помощью нескольких инструментов, одним из которых являются Breakpoints. Их мы используем чаще всего.

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

Читайте также:
Описание программы детский фитнес

Во время авторизации используем ручку merchant/search, в ответе которой приходит атрибут startFlow типа string, который свидетельствует о том, должна ли отображаться заглушка и какие вкладки для заказов необходимо отображать.

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

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

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

В-третьих, атрибут, который приходит в ответе ручки, не хранится в БД, а формируется на бэке по отдельной логике.

Итак, как я уже писал выше, основной инструмент, который понадобится для подмены ответа – это Breakpoints (Точки останова). Если вкратце, Breakpoints срабатывают в тот момент, когда Charles «ловит» запрос к методу, для которого указана точка останова. Запрос не отправится до того момента, пока пользователь руками не отправит его. Сделано это для того, чтобы можно было отредактировать параметры запроса или итоговый ответ.

Итак, указываем в прокси телефона ip и порт Charles и открываем приложение. Логинимся в аккаунт, который работает по поддерживаемой нами схеме.

Логин прошел успешно и мы попадаем в личный кабинет продавца

Открываем Charles и видим запросы, которые проходили за время логина в приложение.

Для того, чтобы отобразилась заглушка, необходимо в ручке merchant/search в поле startFlow прислать значение «true».

Для того, чтобы подменить это поле, необходимо поставить Breakpoint на нужный метод. Для этого в списке запросов находим нужный ~> открываем настройки ~> выбираем пункт Breakpoints.

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

В открывшемся окне нам доступно редактирование тела запроса, если перейти на вкладку «Edit request». В нашем случае менять тело запроса не нужно, поэтому просто отправляем запрос. После этого снова откроется окно в Charles, где уже можно редактировать ответ, который пришел от api. Для редактирования ответа необходимо перейти на вкладку «Edit response» и выбрать удобный формат отображения содержимого ответа.

Из условия мы помним, что для отображения заглушки значение в поле startFlow должны быть stub. Меняем «CD» на «stub» и жмем «execute».

После этого смотрим, что отображается в мобильном приложении и видим, что подмен данных произошел успешно. Теперь фронт показывает необходимую нам заглушку:

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

Возможности Charles гораздо обширнее, чем может показаться на первый взгляд. При желании можно создать несколько файлов с заранее сохраненными ответами от api, настроить Map Local (подмен ответа с бэкенда на ответ, сохраненный в локальном файле) и тестить огромные части фронта без фактического взаимодействия с реальным бэкэндом. Без прохождения процессов по созданию необходимых тестовых данных и соответственно без ощутимых временных затрат. Однако, об этом я хочу поговорить в следующей статье.

  • Блог компании СберМегаМаркет
  • Тестирование веб-сервисов
  • Тестирование мобильных приложений

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru