Какова точная цель Selenium Grid?
Я новичок в Selenium, TestNG и Selenium Grid. Я немного запутался, когда именно мне нужно использовать Selenium Grid. Ниже представлено мое понимание этого. Просто дайте мне знать, прав ли я:
- Selenium Grid предназначен только для удаленного запуска ваших тестов на другом компьютере.
- Если мне нужно запустить тесты параллельно на моем локальном компьютере, нет необходимости использовать сетку. Этого можно добиться, используя только TestNG.
- Если мне нужно выполнить тест параллельно на разных удаленных машинах, тогда я должен использовать selenium Grid вместе с TestNG.
Итак, я понимаю, что цель сетки Selenium НЕ параллельное выполнение. Это для удаленного исполнения. Параллельное выполнение достигается через TestNG. Невозможно выполнить параллельное выполнение, используя только сетку. Это правильно?
1 ответ
Вы совершенно правы в своем заключении, что целью SeleniumGrid является удаленное выполнение тестов на удаленных машинах. Две основные причины для распространения ваших тестов:
- Сократите время выполнения вашего Test Suite.
- Чтобы избежать перегрузки памяти (например, ОЗУ) на вашем локальном хосте, вы можете найти пару соответствующих обсуждений в:
Удаленный WebDriver
Согласно официальной документации Remote WebDriver:
Вы можете использовать WebDriver удаленно так же, как и локально. Основное отличие состоит в том, что удаленный WebDriver необходимо настроить так, чтобы он мог запускать ваши тесты на отдельной машине.
Удаленный WebDriver состоит из двух частей: сервера и клиента. Клиент - это тест WebDriver, а сервер - это просто сервлет Java, который может быть размещен на любом современном сервере приложений JEE.
Удаленный сервер WebDriver
Сервер Remote WebDriver всегда будет работать на компьютере с браузером, который вы хотите протестировать. Сервер может быть запущен либо из командной строки (или через конфигурацию кода).
Клиент удаленного WebDriver
Чтобы запустить клиент Remote WebDriver, вам необходимо сначала подключиться к RemoteWebDriver. Мы делаем это, указывая URL-адрес на адрес сервера, на котором выполняются наши тесты.
Подробно о шагах
Вам необходимо выполнить следующие шаги:
Запустите SeleniumGrid Hub:
java -jar selenium-server-standalone-3.141.59.jar -role hub
Созданные журналы:
18:10:13.310 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358 18:10:13.618 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching SeleniumGrid hub on port 4444 2020-01-02 18:10:14.605:INFO::main: Logging initialized @2136ms to org.seleniumhq.jetty9.util.log.StdErrLog 18:10:15.504 INFO [Hub.start] - SeleniumGrid hub is up and running 18:10:15.509 INFO [Hub.start] - Nodes should register to http://192.168.1.125:4444/grid/register/ 18:10:15.510 INFO [Hub.start] - Clients should connect to http://192.168.1.125:4444/wd/hub
Доступ к консоли SeleniumGrid версии 3.141.59 через URL-адрес
http://localhost:4444/grid/console
:
Запуститеузел SeleniumGrid:
java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -port 7777 -hub http://192.168.1.125:4444/grid/register
Созданные журналы:
18:33:55.959 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358 18:33:56.112 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Launching a SeleniumGrid node on port 7777 2020-01-02 18:33:56.584:INFO::main: Logging initialized @983ms to org.seleniumhq.jetty9.util.log.StdErrLog 18:33:56.913 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet 18:33:57.029 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 7777 18:33:57.029 INFO [GridLauncherV3.lambda$buildLaunchers$7] - SeleniumGrid node is up and ready to register to the hub 18:33:57.195 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms. 18:33:57.734 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.1.125:4444/grid/register 18:33:57.856 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
Сновавойдите вSeleniumGrid Console v.3.141.59 через URL-адрес
http://localhost:4444/grid/console
для просмотра зарегистрированного узла: