Настраиваем Selenium Grid за 5 минут
Заметка о том, как правильно настроить Selenium-Grid. Многие делали это неоднократно, а некоторые даже не знают, что это такое. Ориентируюсь на обе части аудитории: если у вас есть опыт, заметка будет служить такой себе справкой - вдруг чего забыли; если вы не пробовали, но очень хотели - это прекрасный шанс начать.
Итак Selenium-Grid позволяет запускать тесты на разных машинах в разных браузерах параллельно.
В основном 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
Должно появиться что-то подобное этому:
Для того, чтобы проверить, что все стартовало правильно, нужно набрать в браузере
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
Полные команды выглядят так:
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 я уже описывал, как можно использовать драйвер, написанный самим Майкрософт.
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
Ну вот и все, в следующих заметках я покажу, как пользоваться настроенным гридом и запускать тесты. Если вам интересно, подписывайтесь,чтобы получать обновления первым.