2014-02-18 8 views
1

Я хочу захватить все сетевые вызовы из Web Driver в Java. Я не тестирую UI, просто проверяю выполнение JS, а также запросы и ответы некоторых сетевых вызовов.Захват сетевого сетевого трафика во всех браузерах

Я пробовал использовать Браузер Mob, как предлагается на большинстве форумов, но мне нужно, чтобы он работал во всех браузерах. Он работал безупречно с Firefox, но я столкнулся с некоторыми проблемами с другими. Драйвер Safari не поддерживает поддержку прокси-сервера.

Я не хочу использовать Fiddler, поскольку он включает некоторые ручные шаги при вызове и сохранении вызовов. Принимая во внимание, что браузер Mob, являющийся прокси-сервером в коде, может быть интегрирован более плавным образом.

Я также попытался использовать RC-подобный пакет, входящий в комплект автономного сервера Selenium. Но у меня есть некоторые HTTPS-вызовы и некоторые вложенные фреймы в кросс-доменах. Меня особенно интересует какой-то перекрестный доменный вызов POST, и это не так хорошо работает. Кроме того, люди продолжают говорить, что не рекомендуется использовать этот пакет.

Итак, у меня было решение, в котором мы можем использовать автономный прокси-сервер, работающий на машине. Используя записи хоста, мы укажем веб-драйвер, чтобы попасть в прокси вместо реального сервера. Прокси-сервер будет записывать все входящие вызовы и перенаправлять их на фактический сервер. Позже я могу сделать запрос к прокси, который вернет мне все вызовы, которые он перехватил. Я не уверен, что он все еще называется прокси или маршрутизатором.

Я столкнулся с TCPmon, но он больше не поддерживается. Кто-нибудь знает некоторые аналогичные инструменты, которые могут работать в Unix-системах или альтернативных решениях?

ответ

0

Мы модифицировали скрипт правил Fiddler, чтобы включить новое действие exec. Если вы используете собственный редактор сценариев, он также предоставляет функции автоматического завершения, и мы с комфортом могли обойти его. Синтаксис подобен синтаксису JavaScript. Пакет Fiddler поставляется с ExecActions.exe, который может использоваться для передачи аргументов консоли запущенному экземпляру Fiddler с помощью командной строки. Код, который мы написали, обработал все сеансы, захваченные Fiddler, и написал его в файл в пользовательском формате JSON, а затем использовал GSON для десериализации. Пожалуйста, дайте мне знать, если вы хотите получить дополнительную информацию.

Смежные вопросы