JDI — это семейство фреймворков для автоматизации тестирования. На данный момент состоит из JDI Light для UI автоматизации, JDI Dark для бэкэнд автоматизации и JDI Mobile. Название расшифровывается как Just do it: главная идея JDI — в том, чтобы с помощью него было легко тестировать и поддерживать тесты, а все удачные рабочие находки – сохранять и аккумулировать.
Selenium Grid — это кластер, состоящий из нескольких Selenium-серверов. Он предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин. Имеется выделенный сервер, который носит название «хаб» или «коммутатор», а остальные сервера называются «ноды» или «узлы».
Интеграция:
Первое, что нам понадобится, — это сам selenium grid, скачать его можно на официальном сайте selenium (selenium.dev/downloads/), там же можно ознакомиться с документацией.
Далее необходимо запустить selenium grid, для этого в папке со скачанным файлом открываем командную строку и выполняем команды.
Также для настройки нод можно использовать json файлы. Подробнее о возможностях и настройке Selenium Grid можно прочитать на официальном сайте проекта selenium (selenium.dev/documentation/en/grid/).
Проверить, запустился ли хаб, и подключены ли к нему ноды, можно из консоли или, перейдя по ссылке, где зарегистрирован хаб. В представленой выше конфигурации мы создали его локально на порте 4444, поэтому после открытия ссылки (localhost:4444/grid/console) в браузере мы увидим следующий сайт:
Настройка selenium grid завершена, и мы переходим к его использованию.
В случае использования чистого Selenium WebDriver, чтобы получить объект WebDriver, нам будет необходимо создать объект
При создании объекта мы обратимся к хабу и попробуем взять у него ноду, у которой есть необходимый нам браузер. Если такая нода не найдена, будет выброшено исключение.
Из коробки Selenium WebDriver не предоставляет возможности изменять браузер на лету или хранить необходимый нам браузер в файле настроек. Для реализации этих возможностей разработчики тратят силы и время.
Но разработчики JDI Light позаботились о реализации этих возможностей. Используя JDI, можно сэкономить время и силы, так как для получения объекта WebDriver нам нужно будет лишь добавить адрес хаба в файл настроек JDI:
и указать в файле настроек браузер, на котором необходимо выполнить тесты:
Дополнительная информация о файле настроек и других возможностях JDI Light (jdi-docs.github.io/jdi-light/#jdi-settings).
Хаб попытается найти подходящую ноду. В случае если нода не будет найдена, выбросится исключение:
Приятного использования. И спасибо за внимание.
Selenium Grid — это кластер, состоящий из нескольких Selenium-серверов. Он предназначен для организации распределённой сети, позволяющей параллельно запускать много браузеров на большом количестве машин. Имеется выделенный сервер, который носит название «хаб» или «коммутатор», а остальные сервера называются «ноды» или «узлы».
Интеграция:
Первое, что нам понадобится, — это сам selenium grid, скачать его можно на официальном сайте selenium (selenium.dev/downloads/), там же можно ознакомиться с документацией.
Далее необходимо запустить selenium grid, для этого в папке со скачанным файлом открываем командную строку и выполняем команды.
- Запуск selenium grid в режиме хаба:
java -jar selenium-server-standalone-3.141.59.jar -role hub -port 4444
- selenium-server-standalone-3.141.59.jar – файл selenium grid
- port 4444 – порт, на котором будет работать хаб, необходимо знать, чтобы подключать ноды и создавать RemoteWebDriver.
- Подключение ноды к хабу:
java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,maxInstances=3,platform=WINDOWS" -port 5557
Также для настройки нод можно использовать json файлы. Подробнее о возможностях и настройке Selenium Grid можно прочитать на официальном сайте проекта selenium (selenium.dev/documentation/en/grid/).
Проверить, запустился ли хаб, и подключены ли к нему ноды, можно из консоли или, перейдя по ссылке, где зарегистрирован хаб. В представленой выше конфигурации мы создали его локально на порте 4444, поэтому после открытия ссылки (localhost:4444/grid/console) в браузере мы увидим следующий сайт:
Настройка selenium grid завершена, и мы переходим к его использованию.
В случае использования чистого Selenium WebDriver, чтобы получить объект WebDriver, нам будет необходимо создать объект
RemoteWebDriver(URL remoteAddress, Capabilities capabilities)
- remoteAddress – url хаба
- capabilities – конфигурации браузера
При создании объекта мы обратимся к хабу и попробуем взять у него ноду, у которой есть необходимый нам браузер. Если такая нода не найдена, будет выброшено исключение.
Из коробки Selenium WebDriver не предоставляет возможности изменять браузер на лету или хранить необходимый нам браузер в файле настроек. Для реализации этих возможностей разработчики тратят силы и время.
Но разработчики JDI Light позаботились о реализации этих возможностей. Используя JDI, можно сэкономить время и силы, так как для получения объекта WebDriver нам нужно будет лишь добавить адрес хаба в файл настроек JDI:
driver.remote.url=http://localhost:4444/wd/hub
и указать в файле настроек браузер, на котором необходимо выполнить тесты:
driver=chrome
Дополнительная информация о файле настроек и других возможностях JDI Light (jdi-docs.github.io/jdi-light/#jdi-settings).
Хаб попытается найти подходящую ноду. В случае если нода не будет найдена, выбросится исключение:
java.lang.RuntimeException: java.lang.RuntimeException: Failed to do screenshot. No Drivers run
Приятного использования. И спасибо за внимание.