fiddlercap что это за программа
Управление трафиком с использованием Fiddler
Автор: Ольга Еременко, QA Engineer
При тестировании сайтов или мобильных приложений иногда возникает необходимость не только отловить трафик между клиентом и сервером, но и модифицировать его, чтобы посмотреть, как это обработает бэкенд и что поменяется на UI.
В таких случаях можно использовать прокси-сервер Fiddler — промежуточное звено между клиентом (браузер, мобильное приложение и т. д.) и целевым сервером. Скорее всего, этот инструмент вам известен, но обычно говорят о нем вскользь. Мы по шагам разберем, как проверить с помощью Fiddler, что отобразится на UI при изменении запроса к серверу или возвращаемого ответа.
Предположим, есть сайт dataart.ru. На его главной странице выводится блок с будущими ивентами. Если никаких событий нет, то и секция, соответственно, не должна отображаться вместе с заголовком и вспомогательными иконками.
Но что делать, если контент есть, а проверить кейс с отсутствием будущих ивентов нужно? Один из вариантов — использовать Fiddler.
Итак, моделируем случай, когда на главной странице нет будущих ивентов:
1. Запускаем Fiddler. Чистим Web Sessions list слева.
2. Включаем Capturing в левом нижнем углу, чтобы отлавливать трафик.
3. Обновляем страницу dataart.ru в браузере и видим отправленные запросы в левой части окна Fiddler. Нас интересует запрос GET “/Umbraco/Api/Events/GetEventsForHomePage?tags=8”, который возвращает будущие события для нашей страницы. Если в ответе ничего не приходит, то блок с ивентами, заголовком и вспомогательными иконками не отображаются.
4. В этом случае можно модифицировать либо запрос перед отправкой на сервер, либо ответ на этот запрос перед тем, как его получит клиент.
В Fiddler это можно реализовать с помощью breakpoints. Вручную breakpoints могут задаваться через QuickExec консоль следующим образом:
bpu https://dataart.ru/Umbraco/Api/Events/GetEventsForHomePage?tags=8 — создаем breakpoint перед отправкой нужного запроса на сервер.
bpа https://dataart.ru/Umbraco/Api/Events/GetEventsForHomePage?tags=8 — создаем breakpoint перед возвращением ответа клиенту.
Давайте рассмотрим каждый вариант отдельно.
5. Чтобы изменить запрос перед отправкой на сервер, выполняем команду в QuickExec консоли:
bpu https://dataart.ru/Umbraco/Api/Events/GetEventsForHomePage?tags=8
Обновляем в браузере страницу dataart.ru (в это время Capturing должен быть включен для Fiddler) и видим, что выполнение нужного нам запроса приостановлено. На это указывают иконка красного цвета напротив запроса в интерфейсе Fiddler и отсутствие блока с ивентами на самой веб-странице.
Что можно сделать на этом этапе? Изменить/добавить/удалить заголовки, куки, параметры запроса и т. д. Чтобы в ответе ничего не пришло, нам достаточно, например, во вкладке WebForms указать такое значение параметра tags, которое не должно вернуть никаких результатов.
После необходимых изменений запроса все, что остается сделать — кликнуть на Run to Completion и посмотреть на результат в браузере.
Важный момент: чтобы отключить breakpoints, нужно ввести в QuickExec консоль команды “bpu “ или “bpa“ без аргумента. Перед тем как перейти к рассмотрению следующего варианта, желательно убрать созданный breakpoint для запроса через “bpu “ соответственно.
6. Чтобы изменить ответ на запрос перед возвращением его клиенту, выполняем команду в QuickExec консоли:
bpa https://dataart.ru/Umbraco/Api/Events/GetEventsForHomePage?tags=8
Обновляем в браузере страницу dataart.ru (в это время Capturing должен быть включен для Fiddler) и видим, что отправка клиенту нужного нам ответа приостановлена. На это указывают иконка красного цвета напротив запроса в интерфейсе Fiddler и отсутствие блока с ивентами на самой веб-странице.
Для нашей цели достаточно подменить тело ответа. Переходим во вкладку TextView и вместо всего содержимого вставляем ответ, который приходит в тех случаях, когда нет результатов — <«items»:[],«total»:0>. Но не забываем, что изменять можно разные данные (статус код, заголовки и т. д.).
Теперь все, что остается сделать — кликнуть на Run to Completion и посмотреть на результат в браузере.
Существуют и другие способы подключения breakpoints, об этом можно прочитать в небольшой статье Эрика Лоуренса, создателя Fiddler.
Первые шаги с Fiddler Classic
Привет! После знакомства с Charles Proxy большинство из читателей захотело узнать больше про инструменты мониторинга и анализа HTTP/HTTPS трафика. Расскажем про популярный у многих тестировщиков Fiddler. Описать все возможности Fiddler в одной статье вряд ли получится, поэтому давайте рассмотрим базовые возможности, которыми мы пользуемся каждый день.
Fiddler это:
Кроссплатформенное приложение прокси-сервера для отладки HTTP. Он позволяет пользователю просматривать HTTP, HTTPS и активированный трафик TCP-порта, доступ к которому осуществляется с локального компьютера, на него или через него. Сюда входят запросы и ответы, включая HTTP-заголовки и метаданные (например, файлы cookie, кэширование и кодирование информации), с функциями, предназначенными для помощи разработчикам и тестировщикам в анализе соединений и обмене сообщениями.
Первые шаги
1. Установка и запуск
Для начала необходимо загрузить и установить приложение.
Если у вас операционная система MAC или Linux, то для этого Вам необходимо будет перейти в соответствующий раздел для загрузки специальной версии Fiddler Everywhere. В данной статье мы будем рассматривать работу с Fiddler Classic для ОС Windows.
2. Выбор браузера для сниффинга
3. Начинаем сниффить трафик
В открывшемся диалоговом окне нам необходимо выбрать вкладку HTTPS.
Далее необходимо выбрать чекбокс «Decrypt HTTPS traffic». Далее разрешить установку сертификата.
После того, как мы установили сертификат, давайте в браузере откроем, например, сайт Юлы. В разделе слева мы видим все запросы к хосту api.youla.io и не только. Среди запросов выберем нужный нам запрос, например на выдачу всех товаров: https://api.youla.io/api/v1/products
Для того, чтобы декодировать ответ, необходимо нажать на «Response body is incoded. Click to decode.».
4. Настройка прокси на Android
Далее необходимо выбрать чекбокс «Allow remote computers to connect» и «Capture FTP requests». Fiddler теперь прослушивает порт 8888 (это порт по умолчанию, вы можете изменить его из приведенной выше настройки). Для применения настроек, нажимаем «ОК» и перезапускаем Fiddler.
Теперь нам необходимо настроить наше Android устройство. Возьмите в руки телефон, откройте Свойства сети → Название сети WiFi → Прокси-сервер → Вручную → Имя хоста: *ваш IP* / Порт: *8888* → Сохраните измененные свойства сети (указывается IP адрес вашего ПК, на котором установлен Fiddler).
Перейдем по ссылке http://ipv4.fiddler:8888 и скачаем FiddlerRoot certificate, далее начнется автоматическая загрузка сертификата. Откройте его, задайте имя сертификата, и теперь у вас есть доступ к трафику Android-приложения.
5. Настройка прокси на iOS
Возьмите в руки iPhone, откройте Свойства сети → Название сети WiFi → Прокси-сервер → Вручную → Имя хоста: *Наш IP* / Порт: *8888* → Сохраните измененные свойства сети.
Далее перейдите в Настройки → Профиль загружен → Установить.
Затем перейдите в Настройки → Основные → Об этом устройстве → Доверие сертификатам → найдите установленный сертификат и сделайте его «Доверенным».
Операции над запросами
Справа, в окне, где находятся request и response, располагаются дополнительные инструменты:
Statistics — позволяет получать различные статистики как по одному запросу, так и по пачке выделенных;
Inspectors — дает возможность просматривать в различном виде заголовки и данные запроса;
Filters — позволяет следить за конкретными запросами;
Timeline — визуальное представление выполненных запросов на временной шкале.
Подмена данных в Fiddler Classic
Представим, что нам надо протестировать на клиенте верстку. Нужно проверить, как будет отображаться большое количество бонусов у пользователя. Один из вариантов, который многие предложат: изменить в БД количество бонусов и проверить на клиенте. Да, вы будете правы! Однако на сервере может быть кэш, и необходимо подождать какое-то время, пока количество бонусов не обновится, либо просто подключиться к самой базе и выполнить запрос — это занимает определенное время. Есть вариант проще: изменить ответ от сервера! В Fiddler Classic есть несколько вариантов подмены данных, рассмотрим некоторые из них:
1.1 Automatic Breakpoints
Выполним запрос на пользователя https://api.youla.io/api/v1/user/5e6222bbbedcc5975d2375f8 и после выполнения запроса с клиента, в нашем случае это android приложение Юла, request запроса отображается справа. Мы его можем отредактировать.
У нас имеется приложение и профиль пользователя, у которого сейчас 45 бонусов на счету:
Запрос, в котором приходит это количество бонусов: https://api.youla.io/api/v1/user/5e6222bbbedcc5975d2375f8
В левой части экрана мы видим ответ от сервера.
Найдите нужный параметр — «bonus_cnt»:45. Далее измените значение параметра bonus_cnt, например, на 1 000 000 бонусов, и нажмите «Run to Completion».
На клиенте отобразится новое количество бонусов. Мы богаты!
1.2 AutoResponder
AutoResponder — это некая точка остановки запроса. Когда обнаруживается запрос из заданного списка, он отображается справа и с ним можно взаимодействовать.
Выберем необходимый нам запрос и перетащим его в правую часть.
После перетаскивания будет выглядеть так:
Далее нам надо изменить правило, для этого изменим:
METHOD:PUT EXACT:https://api.youla.io/api/v1/user/5e6222bbbedcc5975d2375f8?adv_id=99d548bc-0ca0-434e-b016-24611313d9de&app_id=android%2F10777&uid=85c9a921c27fb0e8&usr_latitude=55.9332685&usr_longitude=37.5032966×tamp=1607977265
На:
REGEX:.+/user/5e6222bbbedcc5975d2375f8*
Нам не важна часть до «/user/5e6222bbbedcc5975d2375f8» и после, сохраним, нажав Save. Далее правой клавишей мыши по запросу –> Edit Response.
В открывшемся окне идем в RAW, изменяем ответ:
Изменим значение с «45» на «1000000» бонусов:
Сохраним измененный ответ, нажав «Save» и перезапрашиваем экран «Профиль пользователя». Мы богаты:
Моделирование скорости
if (m_SimulateModem) <
// Задержка отправки на 300 мсек на каждый загруженный КБ.
oSession [«просачивание-задержка»] = «300»;
// Задержка приема 150 мс на загруженный КБ.
oSession [«задержка-отклик»] = «150»;
>
Конструирование запросов
Представим, что нам нужно самостоятельно отправить запрос и посмотреть ответ. Для данной задачи есть инструмент Request Builder. С помощью данного инструмента можно самостоятельно конструировать HTTP-запросы. В качестве примера давайте запросим товары с экрана «Главная» в сервисе Юла.
Сначала выберем нужный нам метод, в нашем случае это GET запрос. Далее составим сам запрос: http://api.youla.io/api/v1/products
Следующим шагом — выполним наш запрос, нажав Execute. В левой части мы видим выполненный запрос на товары. Выберем данный запрос и через инструмент Inspectors посмотрим запрос и ответ:
Логирование системных процессов и сетевой активности
В данном разделе представлены рекомендации по работе с программами для сбора логов. Данная информация необходима службе технической поддержки для точной диагностики проблемы на рабочем месте пользователя. Ниже доступны инструкции для приложений.
Сбор логов https с помощью FiddlerCap
Установка FiddlerCap
Необходимо скачать и запустить приложение FiddlerCap.
В открывшемся окне нажать на кнопку «Install». В строке Destination Folder будет указан путь до папки, в которую установится FiddlerCap. По умолчанию там указывается Рабочий стол.
Дождаться окончания установки и нажать кнопку «Close».
Сбор логов с помощью FiddlerCap
Найти папку FiddlerCap в той директории, которая была выбрана на этапе установки. По умолчанию FiddlerCap устанавливается на Рабочий стол. В папке FiddlerCap запустить файл «FiddlerCap.exe».
В пункте «Настройки захвата» установить три галки:
Если появится предупреждение об установке сертификата, то в нем следует нажать кнопку «Да». При необходимости, сертификат будет предложено удалить при сохранении логов.
Закрыть все браузеры, открытые на компьютере. Нажать на кнопку «Начать захват». Открыть программу, при работе с которой появляется ошибка (например, Контур.Экстерн), и воспроизвести ошибку.
После того, как ошибка будет воспроизведена, необходимо нажать на кнопку «Остановить захват» в окне программы FiddlerCap. Логирование завершится.
Далее следует нажать на кнопку «Сохранить данные захвата».
Выбрать папку для сохранения.
Файл с логами будет сохранен в выбранной папке.
При сохранении логов появится окно с вопросом об удалении сертификата из корневого хранилища. На усмотрение пользователя можно выбрать любой вариант.
Запись сетевого трафика в Internet Explorer
Перейти на вкладку «Сеть (Network)» > «Ctrl+4». Включить сбор сетевого трафика: в Internet Explorer 9 нажать «Начать сбор». В Internet Explorer 11 нажать на кнопку с з еленым треугольником.
Воспроизвести ошибку (например, обновить страницу, либо перейти по нужной ссылке). Сохранить собранный лог, нажав на изображение дискеты.
В ыбрать папку для сохранения, ввести имя файла, нажа ть «Сохранить». Файл будет создан в xml формате. Создание лога завершено.
Запись сетевого трафика в Mozilla Firefox
Выделите любую запись из лога — нажмите по нему правой кнопкой мыши и нажмите на «Сохранить все как HAR».
Выберите папку для сохранения, введите имя файла, нажмите на сохранить. Файл будет сохранен в формате har.
Запись сетевого трафика в Google Chrome
Если запись логов не началась автоматически, нажмите на кнопку «Record Network Log».
Выделите любую запись из лога, нажмите по нему правой кнопкой мыши и нажмите на «Save as HAR with content».
Выберите папку для сохранения, введите имя файла, нажмите на сохранить. Файл будет сохранен в формате har.
Microsoft Network Monitor
Установка
Необходимо скач ать и запустить приложение Microsoft Network Monitor. На предложение начать установку следует ответить утвердительно, нажав на кнопку «Да».
В открывшемся окне нажать на кнопку «Next».
В следующем окне необходимо установить переключатель «I accept the terms in the Licence Agreement» и кликнуть по кнопке «Next».
Выбрать тип установки «Typical».
Отметить пункт «Create shortcut for Microsoft Network Monitor on the desktop» (Создать ярлык на рабочем столе) и нажать на кнопку «Install».
Нажать на кнопку «Finish» для завершения установки.
После окончания установки необходимо дождаться окончания автоматической настройки компонента Microsoft Network Monitior 3.4 Parsers.
Запуск логирования
Закрыть неиспользуемое программное обеспечение (это необходимо для исключения сохранения в лог активности сторонних продуктов). Запустить программу с помощью ярлыка на рабочем столе.
В главном окне программы выбрать меню «File» > «New» > «Capture».
Нажать на кнопку «Start», после чего свернуть программу и воспроизвести ошибку.
Воспроизвести ошибку, нажать на кнопку «Stop».
В ыбрать меню «File» > «Save As», указать каталог для сохранения и имя файла и нажать на кнопку «Сохранить». Создание лога завершено.
Process Monitor
Чтобы начать логирование при помощи программы Process Monitor, необходимо выполнить следующие шаги:
После запуска программы выбрать меню «File» > «Capture Events». Логирование будет остановлено. Выбрать меню «Edit» > «Clear Display». Автоматически записанный лог будет удален. Программа готова к работе.
Выбрать меню «File» > «Capture Events». Логирование будет запущено. Свернуть приложение и воспроизвести ошибку.
Восстановить приложение и выбрать меню «File» > «Capture Events». Логирование будет остановлено. Выбрать меню «File» > «Save». Установить переключатель «All Events».
Кликнуть по кнопке с тремя точками справа от поля «Path», указать папку для сохранения и имя файла (рекомендуется оставить по умолчанию) и нажать на кнопку «Сохранить».
В окне параметров сохранения файла нажать на кнопку «Сохранить». Создание лога завершено.
Сбор логов с помощью WireShark
Необходимо скачать и запустить приложение WireShark.
Выбрать сетевой интерфейс, с которого необходимо собрать логи.
Далее необходимо нажать на Начать захват пакетов.
Воспроизвести проблему и нажать на Остановить захват пакетов.
Выбрать пункт Файл/Сохранить как. и сохранить логи в формате по умолчанию.