Анна Долгова
Руководитель группы тестирования
Наиболее интересные фичи Fiddler и
Charles и их использование при
тестировании проекта Pulse
15.02.2020
Работаю в Mail.ru Group
1 год
Начинала на проекте
Фронтенд Поиска
Потом переключилась
на проект Фронтенд
Пульс
Анна Долгова
pulse.mail.ru
• Первоначальная настройка Fiddler и Charles
• Filters
• Breakpoints
• Autoresponder
• Scripts
• Экспорт/импорт настроек
О чём сегодня пойдёт
речь?
Что такое снифферы
траффика?
Конфигурация Fiddler для расшифровки
https-траффика
Включаем расшифровку https-
траффика
• Кликаем Tools > Options > HTTPS
• Проставляем чекбокс Decrypt HTTPS
traffic
Help > SSL Proxying >
Install Charles Root
Certificate
Как настроить расшифровку https-
траффика в Charles?
Proxy > SSL Proxy
Settings
Как настроить расшифровку https-
траффика в Charles?
Filters
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
Какие действия можно выполнять в Fiddler со
вкладки Filters?
•Focused Hosts
•Filter
Что и как можно
фильтровать в Charles?
Focused Hosts:
• View > Focused Hosts
(Ctrl+Shift+H) -> вкладка
Sequence, чекбокс Focused
Что и как можно
фильтровать в Charles?
Focused Hosts:
• Вкладка Structure -> правый
клик на хост > Focus (попадает в
Focused Hosts)
Что и как можно
фильтровать в Charles?
Filter:
• Вкладка Structure (поле Filter > Settings) – в т.ч. regexp
• Вкладка Structure (Blacklist на определенный хост или на URL) – Tools > Blacklist (Ctrl+Alt+B)
• Вкладка Sequence (поле Filter)
• Вкладка Sequence (поле Filter > Settings > Filter uses regexp)
• Вкладка Sequence (поле Filter > Settings > Max rows)
• Proxy > Recording Settings (Include/Exclude)
Что и как можно
фильтровать в Charles?
Filter:
• Вкладка Structure (поле Filter > Settings) – в т.ч. regexp
• Вкладка Structure (Blacklist на определенный хост или на URL) – Tools > Blacklist (Ctrl+Alt+B)
• Вкладка Sequence (поле Filter)
• Вкладка Sequence (поле Filter > Settings > Filter uses regexp)
• Вкладка Sequence (поле Filter > Settings > Max rows)
• Proxy > Recording Settings (Include/Exclude)
Что и как можно
фильтровать в Charles?
Что и как можно фильтровать в
Charles?
Вкладка Sequence (поле Filter > Settings > Filter uses regexp)
Что и как можно фильтровать в
Charles?
Tools > Blacklist
(Ctrl+Alt+B)
Общее:
• Возможность фильтрации с использованием regexp
Fiddler:
• Фильтры сосредоточены во вкладке Filters
Charles:
• Фильтры «разбросаны» по всему Charles
• Из интересного - есть функционал Blacklist/Whitelist
filter в Fiddler и Charles
Чем из этого мы
пользуемся?
Filters
Кстати, о
Breakpoints
Breakpoints
• Rules > Automatic breakpoints
• QuickExec box’s bpu/bpa команды
• Вкладка Filters
• Вкладка AutoResponder
• FiddlerScript/extensions, чтобы установить X-BreakRequest или X-
BreakResponse Session flag
Fiddler
Breakpoints
Proxy > Breakpoint Settings
(Ctrl+Shift+K)
Charles
Fiddler
• Отдельное выставление bpa и bpu
Charles
• Одна кнопка Breakpoint на всё, если выставляешь вручную на отдельный запрос
breakpoints в Fiddler и
Charles
Чем из этого мы
пользуемся?
Break after responses - Fiddler
Break after responses - Fiddler
Autoresponder
Autoresponder
• Отвечать заранее подготовлеными
файлами от самого Fiddler (с
расширением .dat)
Fiddler
Autoresponder
• Отвечать заранее подготовленными
файлами, сгенерированными
пользователем
Fiddler
Autoresponder
• Отвечать действиями *Actions (например,
*header:HeaderName=NewValue или *drop)
Fiddler
Autoresponder
Около первого дропдауна есть
очень удобная кнопка Test,
которая позволяет сразу понять,
сматчится ли URL pattern и Test URL
Fiddler
Autoresponder
У Charles в качестве Autoresponder
используется Rewrite.
Tools > Rewrite (или Ctrl+Alt+R)
Charles
Fiddler
• Есть возможность создавать наборы из автореспонсов
• Можно отвечать файлами от самого Fiddler
• Можно отвечать файлами, сгенерированными пользователем
• Можно отвечать действиями *Actions
Charles
• Есть возможность создавать наборы из автореспонсов
autoresponder в Fiddler и
Charles
Чем из этого мы
пользуемся?
Autoresponder
Autoresponder
Autoresponder
Autoresponder
Autoresponder
FiddlerScript
FiddlerScript
Fiddler
Чем из этого мы
пользуемся?
if (oSession.host == «recostream.mail.ru" || oSession.hostname == “recostream.mail.ru"){
if (oSession.HTTPMethodIs("CONNECT"))
{
oSession["x-replywithtunnel"] = "FakeTunnel";
return;
}
if (oSession.isHTTPS)
{
oSession.fullUrl = "http://recostream.devmail.ru/" + oSession.PathAndQuery;
}
}
1. Даунгрейд с https до
http
oSession.url = oSession.url.Replace("n=11","n=11&user_id=354")
2. Подмена значений в
get-параметре
oSession.oRequest["Cookie"] = (oSession.oRequest["Cookie"] +
";cookie_name=1enS1G2in00M0i94ns::17540:2c91d-0-25d44");
3. Подмена значений
cookies
Экспорт и импорт
настроек
Экспорт траффика
File > Export Sessions (All
Sessions/Selected sessions)
Fiddler
Импорт траффика
File > Import Sessions
Fiddler
Экспорт/Импорт
наборов правил из
Autoresponder
Fiddler
Экспорт/Импорт Сессий
Вкладка Sequence -> выбираем
несколько запросов -> Export Session
File > Import…
А так же Tools > Publish Gist Settings
(настройка выгрузки в gist)
Charles
Экспорт/Импорт
Конфигов
Tools > Profiles
Charles
Экспорт/Импорт
Конфигов
Tools > Import/Export Settings
Charles
Общее:
• Можно экспортировать/импортировать сессии
• Можно экспортировать/импортировать наборы файлов для Autoresponder (для Fiddler)
и, как вариант, настройки Rewrite для Charles
Из особенного у Charles:
• Можно экспортировать/импортировать конфиги
• Можно выгружать сессии в gist
Экспорт/импорт настроек в
Fiddler и Charles
Чем из этого мы
пользуемся?
Fiddler:
+:
• Бесплатный
• Подключение скриптов
-:
• Большие проблемы при установке на mac os
Charles:
+:
• Прекрасно встает на mac os
-:
• Платный (лицензия стоит 50$)
Fiddler и Charles
Список литературы)))
Документация
• https://docs.telerik.com/fiddler/configure-fiddler/tasks/configurefiddler
• https://www.charlesproxy.com/documentation/welcome/
Про Fiddler
• https://habr.com/ru/post/140147/
Про Charles
• https://habr.com/ru/company/redmadrobot/blog/269109/
Полезные ссылки
Спасибо за
внимание!
Анна Долгова
Руководитель группы тестирования
a.dolgova@corp.mail.ru
Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail.ru, Анна Долгова

Использование Fiddler и Charles при тестировании фронтенда проекта pulse.mail.ru, Анна Долгова