Как я могу отправить безголовые тесты Selenium RC через внешний прокси-сервер? - PullRequest
2 голосов
/ 15 июня 2011

Мне нужно использовать Selenium RC на автономном сервере Ubuntu для запуска тестов на веб-сайте с использованием внешнего прокси-сервера для имитации пользователя в другой стране.

Чтобы протестировать процесс, я создал очень простой тестовый скрипт PHPUnit, который в основном выполняет:

$this->setBrowser("*firefox");
$this->setBrowserUrl("http://www.ipchicken.com/");
$this->open("/");
$this->assertTrue($this->isTextPresent(<proxy ip>));

Я запускаю Selenium RC, используя следующие директивы прокси-сервера (на прокси-сервере нет аутентификации):

export DISPLAY=":99" && java -Dhttp.proxyHost=<proxy ip> -Dhttp.proxyPort=<proxy port> -jar /var/lib/selenium/selenium-server.jar -avoidProxy

но мой тестовый скрипт не соответствует утверждению. Если я изменю тест на утверждение IP-адреса моего сервера Selenium, утверждение пройдет, и мне кажется, что Selenium отправляет «открытый» запрос непосредственно ipchicken.com, а не отправляет его через прокси-сервер.

Селен-сервер может получить доступ к прокси-серверу. ОК - я проверил это с помощью простого скрипта PHP Curl. Если я запрашиваю ipchicken.com, используя Curl, через прокси-сервер, он просто возвращает IP-адрес прокси-сервера.

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Я объясню вкратце, используя Selenium Grid
1. Сначала запустите отображение при использовании Xorg: 96 -ac в Linux
2. Теперь экспортируйте DISPLAY = 96.
3. запустите firefox
4. Запустите Selenium Port, используя сетку селена.
Вышеуказанные шаги должны быть выполнены на Linux Server.

1. Перед запуском сервера Selen в Linux запустите концентратор наmachine.
2. Теперь запустите сценарий, он перейдет на активный порт в Linux.

Спасибо

0 голосов
/ 16 июня 2011

Я столкнулся с той же проблемой, пытаясь заставить прокси-сервер работать в системе Ubuntu, и не смог заставить работать настройки -Dhttp.proxyHost и т. Д. Моим решением было экспортировать http_proxy до команды java - точно так же, как вы делаете с DISPLAY.

export http_proxy = http://username:password@host:port

Обновление: Поскольку вы используете Firefox, вам также необходимо установить соответствующие настройки прокси в Firefox. ( повесить , который вы упомянули в своем комментарии, означает, что firefox не проходит через прокси). Вам нужно будет запустить менеджер профилей Firefox с

firefox -ProfileManager

затем создайте новый профиль. Создайте новый каталог для пути профиля, так как он поместит большое количество файлов в это место. В этом профиле создайте соответствующие настройки прокси. Теперь вы можете использовать опцию firefoxProfileTemplate с селеном rc:

 java -jar ..... -firefoxProfileTemplate /path/to/your/new/profile

Обратите внимание, что вам нужно будет запустить менеджер профилей только один раз, так что после этого вы сможете запускать без головы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...