Запускаем Selenium Grid

Что такое Seleium Grid?
Selenium Grid – это кластер, включающий в себя несколько Selenium-серверов. Решает следующие задачи:
- Распараллеливание запуска тестов на различных операционных системах, в различных браузерах на разных машинах.
- Общее время прогона тестов.
Selenium Grid работает следующим образом: имеется центральный сервер (hub), к которому подключены узлы (node). Работа с кластером осуществляется через hub, при этом он просто транслирует запросы узлам. Узлы могут быть запущены на той же машине, что и hub или на других.
Начало работы с grid’ом.
- Скачать Selenium Server Standalone c оф. сайта selenium.
- Поместить selenium_server_x.xx.x.jar файл в удобную папку.
- Скачать WebDriver для браузера. Пример Chrome Driver.
- Архив извлеч в удобную папку (можно к grid’у).
Запуск Hub.
Команда для запуска хаба. Выполняется в директории, где лежит сервер.
java -jar selenium-server-standalone-3.12.0.jar -role hubОбратить внимание на версию скаченного сервера! -3.12.0.
При успешном страте увидим сообщение в консоли, нас интересует следующая строка:
23:09:14.761 INFO [Hub.start] - Nodes should register to http://192.168.1.155:4444/grid/register/По этому адрессу будет регестрировать ноды.
Переходим http://localhost:4444/grid/console и видим консоль хаба. Все готово.
Запуск Node.
Команда для запуска ноды. Выполняется в директории, где лежит сервер.
java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.12.0.jar -port 5555 -role webdriver -hub http://localhost:4444/grid/register -browser "browserName=chrome, version=ANY, maxInstances=5, platform=Windows"Рассмотрим команду:
- -Dwebdriver.chrome.driver указываем драйвер. chromedriver это драйвер. который скачали и положили в папку с сервером. Если он в другом месте, нужно указать путь до него.
- -port указываем порт на котором будет поднята нода.
- -role указываем что это webdriver.
- -hub указываем урл хаба http://localhost:4444/grid/register ( в данном случае хаб и нода на одной машине)
- -browser “browserName=Chrome, version=ANY, maxInstances=5, platform=Windows” указываем настройки браузера. maxInstances показывает сколько будет браузеров доступно в ноде, если не указать версию и платформу они заполнятся автоматически.
Перейдем в консоль грида и увидим поднятую ноду с пятью хромами. Все готово к работе.
Настройка с помощью Json.
Hub можно настраивать через JSON файлы. Вот пример:
{
"port": 4444,
"newSessionWaitTimeout": -1,
"servlets" : [],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registry": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": true,
"cleanUpCycle": 5000,
"role": "hub",
"debug": false,
"browserTimeout": 0,
"timeout": 1800
}Для запуска хаба с такими настройками нужно добавить к команде флаг -hubConfig hubconfig.json hubconfig.json это наш файл, который лежит в папке с сервером.
Настройка node дополнительно включает в себя информацию о поддерживаемых браузерах:
{
"capabilities":
[
{
"browserName": "firefox",
"marionette": true,
"maxInstances": 3,
"seleniumProtocol": "WebDriver"
},
{
"browserName": "chrome",
"maxInstances": 4,
"seleniumProtocol": "WebDriver"
"webdriver.chrome.driver": "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
},
{
"browserName": "internet explorer",
"platform": "WINDOWS",
"maxInstances": 2,
"seleniumProtocol": "WebDriver"
"webdriver.ie.driver": "C:/Program Files (x86)/Internet Explorer/iexplore.exe"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5556,
"register": true,
"registerCycle": 5000,
"hub": "http://localhost:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}Для запуска ноды вводим команду (где nodeconfig.json файл в директории с сервером):
java -jar selenium-server-standalone-3.12.0.jar -role node -nodeConfig nodeconfig.jsonПерейдем в консоль грида и увидим поднятую ноду с 2 IE, 3 FF и 4 Chrome.