Настраиваем Selenium Grid за 5 минут

Заметка о том, как правильно настроить Selenium-Grid. Многие делали это неоднократно, а некоторые даже не знают, что это такое. Ориентируюсь на обе части аудитории: если у вас есть опыт, заметка будет служить такой себе справкой - вдруг чего забыли; если вы не пробовали, но очень хотели - это прекрасный шанс начать.

Итак Selenium-Grid позволяет запускать тесты на разных машинах в разных браузерах параллельно.

hub and nodes

В основном Selenium Grid используют по нескольким причинам:

Note

Для распараллеливания запуска тестов на различных операционных системах, в различных браузерах; Для того, чтобы уменьшить общее время прогона тестов.

Selenium Grid оперирует такими составляющими, как Hub и Node.

Что такое Hub?

Note

Hub - центральная точка, которая принимает запросы и направляет их к Node. Такой себе командный пункт. В гриде может быть только один Hub.

Что такое Node?

Note

Node - Selenium инстанс, который будет запускать команды, загружаемые в Hub. Node может быть много в гриде. Node - может запускаться на разных операционных системах с разными браузерами.

Начало настройки:

Скачать Selenium Server Standalone здесь.

Создайте папку seleniumgrid и скопируйте в нее скачанный selenium_server_x.xx.x.jar файл.

Стартуем Hub.

Открываем окно команд и выполняем:

java -jar selenium_server_standalone_2.46.0.jar -role hub

Должно появиться что-то подобное этому:

launch hub

Для того, чтобы проверить, что все стартовало правильно, нужно набрать в браузере

http://localhost:4444/grid/console

Стартуем Node.

В моем случае и Hub и Node расположены на одном компьютере, но это не сильно меняет ситуацию.

Открываем консоль и пишем:

Node для браузера FireFox

java -jar selenium-server-standalone-2.46.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox

Для браузеров Chrome и Internet Explorer настройка немного отличается. Нужно дописать путь к драйверам соответствующих браузеров -Dwebdriver.ie.driver=IEDriverServer.exe и -Dwebdriver.chrome.driver=chromedriver.exe. Скачать драйверы можно на сайте selenium.org

Полные команды выглядят так:

Internet Explorer
java -Dwebdriver.ie.driver=IEDriverServer.exe -jar selenium-server-standalone-2.46.0.jar -role webdriver -hub
http://localhost:4444/grid/register -port 5558 -browser browserName=iexplorer

Для Internet explorer я уже описывал, как можно использовать драйвер, написанный самим Майкрософт.

Chrome
java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-2.46.0.jar -role webdriver -hub
http://localhost:4444/grid/register -port 5558 -browser browserName=chrome

Для того, чтобы проверить, что все настроено корректно, нужно открыть все тот же http://localhost:4444/grid/console и убедиться, что там отображается один истанс IE и один Chrome.

Следует добавить, конфигурировать Hub и Node можно с помощью JSON файлов.

Пример для Hub:

java -jar selenium-server-standalone.jar -role hub -hubConfig hubconfig.json

Пример для Node:

java -jar selenium-server-standalone.jar -role node -nodeConfig nodeconfig.json

Ну вот и все, в следующих заметках я покажу, как пользоваться настроенным гридом и запускать тесты. Если вам интересно, подписывайтесь,чтобы получать обновления первым.