Grid. Настройка и использование.
Описание
Selenium Grid – это кластер, включающий в себя несколько Selenium-серверов. Он позволяет организовать распределённую сеть, позволяющую параллельно запускать много браузеров на разных машинах.
Selenium Grid работает следующим образом: имеется центральный сервер (hub), к которому подключены узлы (node). Работа с кластером осуществляется через hub, при этом он просто транслирует запросы узлам. Узлы могут быть запущены на той же машине, что и hub или на других.
Сервер и узлы могут работать под управлением разных операционных систем, на них могут быть установлены разные браузеры. Одна из задач Selenium Grid заключается в том, чтобы «подбирать» подходящий узел по типу браузера, версии, операционной системы и другим атрибутам, заданным при старте браузера.
Начало работы с Selenium Grid
Сначала мы должны запустить центральный сервер (hub). Это делается с помощью следующей команды:
После запуска команды можно перейти на панель администрирования хаба по адресу:
Запускаем узлы кластера:
Если хаб запущен на другой машине, нужно заменить адрес в параметр hub. Если запускается несколько узлов на одной машине, указывайте разные значения параметра port.
Центральный сервер (hub) можно настраивать через JSON файлы:
Настройка узлов (nodes) дополнительно включает в себя информацию о поддерживаемых браузерах:
На этом настройка самого грида заканчивается. Следующая стадия - настройка автотестов на использование Selenium Grid, вместо локальных браузеров. Для того, чтобы указать, на какой платформе и в каком браузере необходимо будет запустить тесты, используем DesiredCapabilities:
Эти настройки теперь нам необходимо передать создаваемому экземпляру драйвера. При этом мы должны создать экземпляр не привычного нам Firefox/Chrome/InternetExplorerDriver, а использовать класс RemoteWebDriver:
Как видно, здесь же мы передаем путь к самому хабу, который будет распределять наши тесты по нодам. Здесь необходимо заменить localhost на ip-адрес машины, на которой развернут хаб и, если вы использовали не дефолтный (4444) порт, придется заменить и его на правильный. Остальная часть ссылки обязательна.
Это все изменения в тестах, которые необходимо будет сделать, для запуска с использованием Selenium Grid. Как видите, при правильном подходе к архитектуре, потребуется внести изменения только в конфигурационный @Before...-метод. Возможно еще написать небольшой вспомогательный метод для получения и передачи конфигураций через консоль.
Подробную информация по настройке Selenium Grid вы найдете по следующим ссылкам: http://www.seleniumhq.org/docs/07_selenium_grid.jsp
Last updated