Proxyman: от настройки до использования
Привет! Не нашла статей в интернете, которые бы классно описывали настройку и возможности Proxyman (в отличие от Charles, имхо) для русскоговорящей аудитории, давай это исправим, и я расскажу, как настроить Proxyman и какие возможности у него есть для тебя 🧡.
Proxyman - сниффер трафика, позволяющий отслеживать запросы и ответы, подменять любые части запроса и ответа, работает как на Windows, так и на MacOS. Молодой и развивающийся инструмент, имеющий супер friendly функционал, живую поддержку и темную тему в своем арсенале 😎.
I. Скачиваем приложение
Здесь же мы получим уведомление о том, что пользуемся пробной версией и предложение купить Pro-подписку. Стоит ли покупать подписку поговорим в самом конце, я пользовалась обеими и мне есть, что рассказать.
Сразу рекомендую установить темную тему, если для тебя это важно: Settings → Appearance → App Theme: Dark Theme. И отключить автоматическое проксирование ПК при запуске: Settings → Auto Override System Proxy Settings at Launch - снимаем галочку.
II. Устанавливаем сертификат на ПК и доверяем ему
Certificate → Install Certificate on this Mac/Windows. В появившемся окне нажимаем "Install and Trust".
Далее соглашаемся с возможностью вносить изменения на этот ПК, и готово!
Тут круто то, что автоматически настроится доверие сертификату и не нужно это делать вручную.
Proxyman подскажет, что серт скачан и мы ему доверяем зелененьким:
И вот так, если еще не все готово:
Если сертификат автоматически не стал доверенным:
- кликаем на Manage Certificates
- перебросило в настройки Proxyman
- кликаем на желтую надпись под сертификатом "Installed, But not trusted"
- попадаем в системные настройки сертификатов и ключей
- в Trust меняем на "Always Trust"
- закрываем окно, подтверждая наш выбор (потребует ввести пароль).
III. Устанавливаем сертификат на мобилки
Android/ IOS:
- Certificate → Install Certificate on Android/IOS → Physical Devices.
Дальше открывается инструкция от Proxyman по установке сертификата - выполняем ее, основные действия:
- подключаем WiFi с настроенным прокси-сервером, выставляя хост и порт, которые он просит
- открываем браузер на девайсе по ссылке http://cert.proxyman.io или http://proxy.man/ssl
- скачиваем сертификат и доверяем ему в настройках телефона.
Если не получается скачать сертификат, проверь настройки Firewall - должно быть разрешено входящее соединение Proxyman (Настройки → Сеть → Firewall). Если там все окей, может помочь "забыть эту WiFi сеть", перезагрузка Proxyman, переподключение к WiFi на ПК. Еще убедишь, что выключены все VPN, антивирусы, и твои расширения не блокируют трафик прокси.
IV. Настраиваем SSL
Tools → SSL Proxying List. Включаем Enable SSL Proxying Tool ✅ и добавляем звездочкой (*) все хосты в Include list. Теперь мы видим весь входящий и исходящий трафик с подключенных устройств.
V. Где что ...
- проверь, что у тебя включено проксирование - отображается ⏸ в левом верхнем углу
- слева появятся подключенные устройства, чтобы не путаться между ними переименуй их в удобные для тебя названия. Я разделяю по моделям + место подключения (дом/ офис)
- по Time можно отфильтровать отображение новых запросов - вверху или внизу (№1)
- по клику на запрос открывается вся информация о запросе и ответе (№2)
- на примере запроса в Wiki видим, что слева (№3) отображается инфа о запросе: header, query, body, Cookies. А справа (№4) инфа об ответе: header, body...
Кстати, очень классная реализована штука в ответе - Treeview. Если ответ громадный, а нужна структура (например, для автотеста), то treeview очень поможет понять структуру запроса и не запутаться.
- чтобы воспользоваться поиском по запросам нажимаем CTRL+F. Там можно отфильтровать как тебе нужно.
VI. Tools
Breakpoint
- для подмены запроса/ответа в моменте отправки
- правой кнопкой мыши на запрос → Tools → Breakpoint или в меню Tools → Breakpoint.
Ставь * после пути, если не нужно смотреть на какие-то кастомные квери-параметры или * после домена, если путь не важен.
Если нужно подменить только ответ, то убирай галочку с Request для удобства.
Map Local
- для подмены ответа константными данными
- правой кнопкой мыши на запрос → Tools → Map Local или в меню Tools → Map Local.
Map Remote
- для перенаправления запроса на другой адрес
- правой кнопкой мыши на запрос → Tools → Map Remote или в меню Tools → Map Remote.
Scripting
- позволяет гибко модифицировать запрос/ответ: менять заголовки, тело, перенаправлять запросы, добавлять/удалять куки и т.д., работает на Java Script. Я использую Scripting, если мне нужно подменить хэдеры и перенаправить запрос, еще и в боди что-нибудь добавить - универсально вместо отдельных Breakpoint + Map Remote + Map Local. Да иногда даже, чтоб с помощью Breakpont не менять каждый раз body запроса я использую Scripting, который после включения будет применяться ко всем последующим запросам, а не одноразово как Breakpoint. Документация от Proxyman по настройке скрипта https://docs.proxyman.com/scripting/script
- Tools → Scripting
Лайфхак: скинув схему скрипта в Proxyman искусственному интеллекту и объяснив что тебе нужно подменить/добавить, он обычно сразу накидывает рабочие варианты и не нужно закапываться в синтаксисе.
Network Conditions
- имитация разных скоростей сети (2G, 3G и т. д.)
- Tools → Network Conditions
- можно выбрать пресеты (3G, 4G) или выставить свои параметры
XI. Экспорт запросов и ответов
- для отправки коллегам для дебагинга/ примера и т.д
- выделяем нужные запросы → нажимаем правой кнопкой мыши → Export → as HAR (HTTP Archive).
XII. Trial VS Pro
У меня месяц назад закончилась подписка и я пока ее не продлеваю, в целом, тестированию не мешает, что из критичного:
- только одно правило можно создать по всем инструментам, что накладывает некоторе ограничения. Я не смогу применить на два и более разных запросов Map Local/Breakpoint/Map Remote. Пока не нужно было, но в дальнейшем может понадобиться и тогда либо использовать Scripting, либо Charles 😭..
Как я обхожу это ограничение: экспортирую все важные скрипты, map local в папку на компьютере и просто в нудный момент импортирую обратно в Proxyman.
Резюмируем
Если тебе не нужно одновременно подменять несколько разных запросов, то Proxyman отлично подойдет, а если нет, то печально, так как подписка из России не доступна, да и цена не каждому понравится. В целом, Proxyman очень интуитивный, удобный, быстро работающий инструмент, ни разу не подводил, с очень доступной документацией, highly recommend!