Selenium Учебное пособие по Grid: настройка концентратора и узла (пример)
Что такое Selenium Сетка?
Selenium сетка Является частью Selenium Пакет, который специализируется на параллельном запуске нескольких тестов в разных браузерах, операционных системах и компьютерах. Это достигается путем маршрутизации команд удаленных экземпляров браузера, где сервер выступает в качестве концентратора. Пользователю необходимо настроить удаленный сервер для выполнения тестов.
Selenium У Grid есть две версии — старая Grid 2 и новая Grid 1. Мы сосредоточимся только на Grid 2, поскольку Grid 2 постепенно устаревает. Selenium Команда.
Selenium сетка Archiтекстура
Selenium У Grid есть Hub и Node. Archiтектура.

хаб
- Хаб — это центральная точка, в которую вы загружаете свои тесты.
- В сети должен быть только один концентратор.
- Хаб запускается только на одной машине, скажем, компьютере, ОС которого Windows 7 и чей браузер IE.
- На машине, содержащей хаб, будут запускаться тесты, но вы увидите, что браузер на узле автоматизируется.
Nodes
- Узлы – это Selenium экземпляры, которые будут выполнять тесты, загруженные вами в хаб.
- В сетке может быть один или несколько узлов.
- Узлы можно запускать на нескольких машинах с разными платформами и браузерами.
- Машины, на которых работают узлы, не обязательно должны иметь ту же платформу, что и хаб.
Selenium Grid использует концепцию узлового узла, при которой вы запускаете тест только на одной машине, называемой хаб, но выполнение будет выполняться на разных машинах, называемых узлы.
Как настроить Selenium Сетка?
В этом разделе вы будете использовать 2 машины. Первая машина будет системой, на которой будет работать концентратор, а другая машина будет запускать узел. Для простоты назовем машину, на которой работает концентратор, «Машиной А», а машину, на которой работает узел, — «Машиной Б». Также важно отметить их IP-адреса. Допустим, машина A имеет IP-адрес 192.168.1.3, а машина B — IP 192.168.1.4.
Шаг 1) Скачать Selenium Сервер от здесь.
Шаг 2) Вы можете разместить Selenium Серверный файл .jar в любом месте вашего жесткого диска. Но для целей этого руководства поместите его на диск C как на компьютере A, так и на компьютере B. После этого установка будет завершена. Selenium Сетка. Следующие шаги запустят концентратор и узел.
Шаг 3)
- Сейчас мы собираемся запустить хаб. Перейдите к машине A. Используя командную строку, перейдите в корень диска машины A – C, потому что это каталог, в который мы поместили Selenium Сервер.
- В командной строке введите java -jar selenium-server-standalone-2.30.0.jar -ролевой концентратор
- Хаб должен успешно запуститься. Ваша командная строка должна выглядеть примерно так, как показано на рисунке ниже.
Шаг 4) Другой способ проверить, работает ли хаб, — использовать браузер. Selenium Grid по умолчанию использует порт 4444 машины A для своего веб-интерфейса. Просто откройте браузер и перейдите по ссылке http://localhost:4444/grid/console
Кроме того, вы можете проверить, может ли машина B получить доступ к веб-интерфейсу хаба, запустив там браузер и перейдя туда, где «iporhostnameofmachineA» должен быть IP-адресом или именем хоста машины, на которой работает хаб. Поскольку IP-адрес машины А — 192.168.1.3, то в браузере машины Б вам следует ввести http://192.168.1.3:4444/grid/console
Шаг 5)
- Теперь, когда хаб уже настроен, собираемся запустить ноду. Перейдите на компьютер B и запустите там командную строку.
- Перейдите в корень диска C и введите код ниже. Мы использовали IP-адрес 192.168.1.3, потому что именно там работает концентратор. Мы также использовали порт 5566, хотя вы можете выбрать любой свободный номер порта.
- ПРИМЕЧАНИЕ. Теперь вам необходимо указать путь к драйверу Gecko, если вы используете Firefox. Вот обновленный код, который необходимо использовать
java -Dwebdriver.gecko.driver="C:\geckodriver.exe" -jar selenium-server-standalone-3.4.0.jar -role webdriver -hub http://192.168.1.3:4444/grid/register -port 5566
- Когда вы нажмете Enter, ваша командная строка должна выглядеть так, как показано на изображении ниже.
Шаг 6) Перейдите в Selenium Grid веб-интерфейса и обновите страницу. Вы должны увидеть что-то вроде этого.
На этом этапе вы уже настроили простую сетку. Теперь вы готовы запустить тест удаленно на машине B.
Когда использовать Selenium Сетка?
Вы должны использовать Selenium Сетка, когда вы хотите выполнить одно или оба из следующих действий:
- Запускайте тесты на разных браузерах, операционных системах и компьютерах одновременно. Это гарантирует, что приложение, которое вы используете Тестирование полностью совместим с широким спектром комбинаций браузера и ОС.
- Экономьте время при выполнении наборов тестов. Если вы настроили Selenium Grid для запуска, скажем, 4 тестов одновременно, тогда вы сможете завершить весь пакет примерно в 4 раза быстрее.
Сетка 1.0 против сетки 2.0
Ниже приведены основные различия между Selenium Сетка 1 и 2.
Сетка 1 | Сетка 2 |
---|---|
Selenium Grid 1 имеет собственный пульт дистанционного управления, отличающийся от Selenium RC-сервер. Это две разные программы. | Selenium Grid 2 теперь поставляется в комплекте с Selenium JAR-файл сервера |
Вам необходимо установить и настроить Apache Сначала Ant, прежде чем вы сможете использовать Grid 1. | Вам не нужно устанавливать Apache Ant в Grid 2. |
Могу только поддержать Selenium Команды/скрипты RC. | Может поддерживать оба Selenium Скрипты RC и WebDriver. |
Вы можете автоматизировать только один браузер для каждого пульта дистанционного управления. | Один пульт дистанционного управления может автоматизировать до 5 браузеров. |
Selenium сетку можно настроить двумя разными способами; один через командную строку, а другой через файл конфигурации JSON.
Разработка тестовых сценариев, которые могут работать в сети
Чтобы разработать тестовые сценарии, которые будут работать в сетке, нам нужно использовать Желаемые возможности и RemoteWebDriver объекты.
- Желаемые возможности используется для установки типа браузер и OS что мы будем автоматизировать.
- RemoteWebDriver используется для установки узла (или машины), на котором будет выполняться наш тест.
Для использования Желаемые возможности объект, вы должны сначала импортировать этот пакет
Для использования RemoteWebDriver объект, вы должны импортировать эти пакеты.
Использование объекта DesiredCapabilites
Перейдите в веб-интерфейс Grid и наведите курсор на изображение браузера, который вы хотите автоматизировать. Обратите внимание на платформы, и имя браузера показано во всплывающей подсказке.
В данном случае платформа — «XP», а имя браузера — «Firefox".
Мы будем использовать платформу и имя браузера в нашем WebDriver, как показано ниже (конечно, сначала вам необходимо импортировать необходимые пакеты).
Использование объекта RemoteWebDriver
Импортируйте необходимые пакеты для RemoteWebDriver, а затем передайте объект DesiredCapabilities, который мы создали выше, в качестве параметра для объекта RemoteWebDriver.
Запуск примера тестового примера в Grid
Ниже приведен простой WebDriver TestNG код, который вы можете создать в Eclipse на машине A. После запуска автоматизация будет выполнена на машине B.
import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class Grid_2 { WebDriver driver; String baseUrl, nodeURL; @BeforeTest public void setUpWthrows MalformedURLException { baseUrl = "http://newtours.demoaut.com/"; nodeURL = "http://192.168.1.4:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.firefox(); capability. setBrowserName("firefox"); capability. setPlatform(Platform.XP); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void simpleTest() { driver.get(baseUr1); Assert.assertEquas("Welcome: Mercury Tours", driver.getTitle()); } }
Тест должен пройти.
![]() |
![]() |
Selenium конфигурация сетки с использованием файла JSON
JSON означает Javascript Обозначение объекта. Это стандартный формат, используемый для обмена данными между браузером и веб-сервером. Selenium имеет встроенный файл конфигурации JSON, который можно использовать для настройки Selenium Grid.
Ниже приведены шаги по настройке сетки селена с использованием файла конфигурации JSON.
Шаг 1) Загрузите код для файла конфигурации JSON, используя указанный ниже путь.
Вот код
{ "port": 4444, "newSessionWaitTimeout": -1, "servlets" : [], "withoutServlets": [], "custom": {}, "capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher", "registryClass": "org.openqa.grid.internal.DefaultGridRegistry", "throwOnCapabilityNotPresent": true, "cleanUpCycle": 5000, "role": "hub", "debug": false, "browserTimeout": 0, "timeout": 1800 }
Шаг 2) Скопируйте и вставьте код в текстовый редактор, например «Блокнот», с расширением «.json».
Шаг 3)Запустите хаб, используя команду ниже, используя командную строку
java -jar selenium-server-standalone-2.53.1.jar -role hub -hubConfig hubconfig.json
ПРИМЕЧАНИЕ: Selenium отдельный файл jar и файл json должны находиться в одном каталоге
Шаг 4) Появится экран ниже, показывающий, что концентратор настроен успешно.
Шаг 5) Откройте веб-браузер и попробуйте подключиться к указанному ниже URL-адресу.
http://192.168.43.223:4444/grid/console
ПРИМЕЧАНИЕ: URL-адрес может отличаться от машины к машине. Необходимо использовать URL-адрес, за которым следует фраза «Узлы должны зарегистрироваться» на экране выше.
Шаг 6) Появится экран Grid Console, показывающий, что концентратор запущен и работает.
Настройте УЗЛЫ с помощью JSON
Шаг 1) Загрузите образец файла конфигурации узла, предоставленный Selenium используя приведенный ниже URL-адрес
ПРИМЕЧАНИЕ: ЕСЛИ ВЫ ИСПОЛЬЗУЕТЕ SELENIUM 3.0 ИЛИ ВЫШЕ, НЕОБХОДИМО ИСПОЛЬЗОВАТЬ ФАЙЛ JSON НИЖЕ.
Шаг 2) Скопируйте и вставьте код в текстовый редактор, например «Блокнот», и сохраните файл с расширением «.json».
Шаг 3)
Запустите приведенную ниже команду в командной строке
Java-Dwebdriver.chrome.driver="chromedriver.exe" -Dwebdriver.ie.driver="IEDriverServer.exe" -Dwebdriver.gecko.driver="geckodriver.exe" -jar selenium-server-standalone-2.53.1.jar -role node -nodeConfig node1.json
ПРИМЕЧАНИЕ: Перед запуском команды убедитесь, что драйверы для каждого браузера загружены в каталог локального компьютера.
Шаг 4) Экран ниже появится при нажатии клавиши ввода.
Шаг 5) Перейдите к консоли сетки, чтобы проверить, успешно ли настроены узлы.
Браузеры отображаются на сетке консоли. Следовательно, мы можем быть уверены, что узлы настроены успешно.
Примеры тестовых случаев включены Selenium Сетка:
package com.objectrepository.demo; import org.openqa.selenium.*; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.*; public class SeleniumGrid { WebDriver driver; String baseURL, nodeURL; @BeforeTest public void setUp() throws MalformedURLException { baseURL = "https://demo.guru99.com/test/guru99home/"; nodeURL = "http://192.168.43.223:5566/wd/hub"; DesiredCapabilities capability = DesiredCapabilities.chrome(); capability.setBrowserName("chrome"); capability.setPlatform(Platform.WIN10); driver = new RemoteWebDriver(new URL(nodeURL), capability); } @AfterTest public void afterTest() { driver.quit(); } @Test public void sampleTest() { driver.get(baseURL); if (driver.getPageSource().contains("MOBILE TESTING")) { Assert.assertTrue(true, "Mobile Testing Link Found"); } else { Assert.assertTrue(false, "Failed: Link not found"); } } }
Приведенный выше код запускает браузер Chrome и переходит по URL-адресу, указанному в переменной baseURL. Было подтверждено, что на странице отображается название ссылки «Мобильное тестирование».
URL-адрес переменной nodeURL можно изменить, чтобы он отражал IP-адрес удаленного компьютера. Результат теста можно проверить по умолчанию. TestNG отчет создан
Резюме
- Selenium Grid используется для одновременного запуска нескольких тестов в разных браузерах и на разных платформах.
- Grid использует концепцию узлового узла.
- Хаб — это центральная точка, в которую вы загружаете свои тесты.
- Узлы – это Selenium экземпляры, которые будут выполнять тесты, загруженные вами в хаб.
- Для установки Selenium Grid, вам нужно только скачать Selenium JAR-файл сервера — тот же файл, который используется при запуске Selenium RC-тесты.
- Есть два способа проверить, работает ли хаб: один — через командную строку, другой — через браузер.
- Чтобы запустить тестовые сценарии в Grid, вам следует использовать объекты DesiredCapabilities и RemoteWebDriver.
- DesiredCapabilites используется для установки типа браузера и ОС, которые мы будем автоматизировать.
- RemoteWebDriver используется для установки узла (или компьютера), на котором будет выполняться наш тест.