Миграция с Charles Proxy

Таблица соответствия инструментов Charles и перенос записанной сессии через HAR по шагам: что переносится, что теряется и какие есть ограничения.

Что соответствует чему

Charles разложен по меню Tools; у Solpuga часть того же в меню Инструменты, часть — в самом списке запросов. Где соответствия нет, стоит прочерк.

Charles Solpuga
Map Local Локальная подмена
Breakpoints Брейкпоинты
SSL Proxying exclusions Список исключений
Client Process Приложение-источник
Export Session → HAR Экспорт HAR 1.2
Import Session → HAR Импорт HAR, только чтение
Структура по хостам Группировка по хостам и приложениям
Filter Поиск и фильтры
Timing Тайминг по фазам
WebSocket Частично: запись сообщений, без отправки
Map Remote —
Rewrite —
Throttling —
Repeat, Repeat Advanced, Compose —
DNS Spoofing, Mirror, Auto Save, Block List —
HTTP/2 —
Скрипты —

Перенос сессий через HAR

Свой формат .chlz не читает ничто, кроме Charles, поэтому переносить надо через HAR: Charles отдаёт его с версии 3.6, Solpuga открывает.

В Charles. File → Export Session… → формат HTTP Archive (.har) → сохранить. Для части записи: выделить нужные запросы и File → Export Selected Session….

В Solpuga. Меню Инструменты → импорт HAR (Cmd/Ctrl + Shift + I), либо открыть .har из файлового менеджера. Файл открывается в отдельном окне только для чтения со своим списком и инспектором: живой перехват при этом не затрагивается, так что импортировать чужую сессию можно не останавливая свою.

Ограничение одно: файлы больше 500 МБ не принимаются. Сессия Charles на сутки записи легко переваливает за эту границу — выгружайте выборкой.

Что переносится

Заголовки запроса и ответа, тела, статусы, тайминги — всё, что HAR 1.2 описывает. В импортированном окне работает тот же инспектор, что и в живом перехвате: JSON сворачивается деревом, изображения показываются с размерами, двоичное — как hex. Тела и исходные сообщения можно сохранить в файлы.

Что теряется

Это ограничения формата, а не чьей-то реализации:

  • Правила. Map Local, Rewrite, брейкпоинты и фильтры в HAR не входят вообще — формат описывает трафик, а не настройки. Правила придётся создать заново, и быстрее всего это делается из перехваченного запроса: правило заполняется тем ответом, который реально пришёл.
  • WebSocket. В HAR для них нет места.
  • Двоичные тела запросов. Solpuga их в свой экспорт не кладёт и помечает комментарием; у других экспортёров свои пределы на размер.
  • Незавершённые запросы. В экспорте Solpuga их нет, а неудачные уезжают со статусом 0.
  • Повторное распаковывание. Тела в HAR от Solpuga лежат расшифрованными и распакованными, а заголовки ответа — такими, как пришли. Импортёр, который верит Content-Encoding, попробует распаковать второй раз. Если текст открылся мусором — дело в этом, а не в файле.

Что взамен

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

Скачать бесплатно

Рядом