selenium grid tutorial
Вступ до селенової сітки та способи проведення крос-браузерного тестування за допомогою селенової сітки:
Зараз ми близько до кінця цього вичерпна серія підручників із селену . Наступного тижня ми завершимо цю онлайн-серію навчальних курсів Selenium навчальними посібниками «Оцінка зусиль проектів Selenium» та «Запитання та відповіді на інтерв’ю Selenium».
Сьогодні в цьому посібнику ми познайомимо вас з Сітка селенова - а розподілене виконання тесту середовище для пришвидшення виконання пробного проходу. Дізнайтеся, як виконувати перехресне тестування браузера за допомогою Selenium Grid.
Що ви дізнаєтесь:
- Що потрібно для селенової сітки?
- Переваги селенової сітки
- Встановіть Selenium GRID
- Браузер та вузли
- maxInsistance
- maxSession
- Зразок коду сітки
- Налаштування за допомогою файлу JSON
- Висновок
- Рекомендована література
Що потрібно для селенової сітки?
По мірі проходження цілого Підручники з селену WebDriver ви дізнаєтесь, що WebDriver буде виконувати ваші тестові кейси на одній машині.
Ось кілька проблем із такою установкою:
- Що робити, якщо ви хочете виконати свої тестові кейси для різних операційних систем?
- Як запустити тестові кейси в іншій версії одного браузера?
- Як запустити тестові кейси в декількох браузерах?
- Чому сценарій повинен чекати виконання інших тестових випадків, навіть якщо це не залежить від жодного тестового випадку?
Усі ці проблеми розглядаються у селену GRID.
Продовжуючи курс селену, ми отримаємо уявлення про те, як ми можемо подолати ці проблеми. В основному, архітектура Grid базується на архітектурі master-slave. Master machine розподіляє тестові приклади між різними підлеглими машинами.
Доступні 2 версії Grid. Selenium Grid 2.0 - це остання версія від Selenium. Селен 1.0 був попередньою версією. Більшість експертів з Selenium віддають перевагу використанню Selenium Grid 2.0, оскільки він має нові функції. Selenium Grid 2.0 підтримує сценарії Selenium RC та Selenium WebDriver.
Рекомендований інструмент:
# 1) Лямбда-тест
Виконайте тестування автоматизації Selenium на масштабованій, безпечній та надійній хмарній мережі Selenium Grid в Інтернеті. Прискоріть автоматизацію тестування Selenium, одночасно збільшивши охоплення тестуванням, протестувавши на онлайн-інфраструктурі з 2000+ середовищ для настільних ПК та мобільних браузерів.
Пропоноване читання = >> Автоматизуйте тестування браузера за допомогою LambdaTest
Переваги селенової сітки
- Selenium Grid надає гнучкість для розподілу тестових кейсів для виконання.
- Скорочує час обробки партії.
- Може виконувати тестування в декількох браузерах.
- Може виконувати тестування з декількома ОС.
Основна термінологія селенової сітки:
Концентратор : Hub - це центральна точка всієї архітектури GRID, яка приймає всі запити. У селеновій сітці є лише один концентратор. Hub розподіляє тестові приклади по кожному вузлу.
Вузол : У Grid може бути кілька вузлів. Тести будуть виконуватися у вузлах. Кожен вузол зв'язується з концентратором і виконує призначений йому тест.
Встановіть Selenium GRID
Крок 1 : Завантажте файл jar Selenium Server з офіційного веб-сайту Selenium, який раніше називався Selenium RC Server, і збережіть його в будь-якому місці на локальному диску.
URL-адреса штабу селену: http://www.seleniumhq.org/download/
Крок 2 : Відкрийте командний рядок і перейдіть до папки, де знаходиться сервер. Запустіть сервер, використовуючи команду нижче
java -jar селен-сервер-автономний-2.41.0.jar -рольовий хаб
За замовчуванням концентратор використовуватиме порт 4444. Цей порт можна змінити, передавши інший номер порту в командному рядку, якщо порт відкритий і йому не призначено завдання.
Перевірити стан можна за допомогою веб-інтерфейсу: http: // localhost: 4444 / grid / console
Крок 3 : Перейдіть на іншу машину, де ви збираєтесь налаштувати вузли. Відкрийте командний рядок і запустіть нижченаведений рядок.
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://localhost:4444/grid/register -port 5556
Запустіть сервер селену на інших машинах, щоб запустити вузли.
Браузер та вузли
Після запуску концентратора та вузлів на кожній машині, коли ви перейдете до консолі GRID
Ви знайдете 5 браузерів Chrome, 5 Firefox та 1 браузер IE у розділі браузера, як показано нижче.
Це означає, що за замовчуванням ви можете використовувати 5 браузерів Chrome, 5 Firefox та 1 браузер IE.
Наприклад, якщо ви хочете використовувати лише IE, ви можете запустити вузол, використовуючи команду нижче:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore
Перевірте тип браузера та інші деталі у консолі GRID, натиснувши переглянути конфігурацію .
Аналогічно для Firefox:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox
Для Chrome:
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome
Є кілька сценаріїв, коли вам може знадобитися браузер кожного типу, тобто: IE, Chrome та Firefox.
Наприклад, вам може знадобитися використовувати 1 IE та 1 Firefox та 1 браузер Chrome
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=iexplore -browser browserName=firefox -browser browserName=chrome
maxInsistance
maxInstance використовується для обмеження кількості ініціалізацій браузера у вузлі.
Наприклад, якщо ви хочете працювати з 2 Firefox та 2 IE, тоді ви можете запустити вузол за допомогою maxInstance.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=firefox,maxInstance=3
Максимальний екземпляр можна перевірити на вкладці конфігурації.
Подібним чином інші екземпляри браузера можна налаштувати за допомогою maxInstance.
maxSession
maxSession використовується для налаштування кількості переглядачів, які можна використовувати паралельно у віддаленій системі.
java -jar selenium-server-standalone-2.41.0.jar -role webdriver -hub http://localhost:4444/grid/register -port 5556 -browser browserName=chrome,maxInstance=3 -browser browserName=firefox,maxInstance=3 –maxSession 3
Так само ви можете запустити кілька вузлів, і конфігурацію можна перевірити в консолі.
NODE1:
NODE2:
Зразок коду сітки
Тут я використовував TestNG для запуску зразкового тесту GRID.
Обов’язкова умова : Створіть концентратор і вузли, як пояснювалося раніше, і TestNG слід налаштувати в eclipse.
Тут я пройшов зразок тесту для входу в Gmail та введення імені користувача та пароля
public class GridExample { @Test public void mailTest() throws MalformedURLException{ DesiredCapabilities dr=null; if(browserType.equals('firefox')){ dr=DesiredCapabilities.firefox(); dr.setBrowserName('firefox'); dr.setPlatform(Platform.WINDOWS); }else{ dr=DesiredCapabilities.internetExplorer(); dr.setBrowserName('iexplore'); dr.setPlatform(Platform.WINDOWS); } RemoteWebDriver driver=new RemoteWebDriver(new URL('http://localhost:4444/wd/hub'), dr); driver.navigate().to('http://gmail.com'); driver.findElement(By.xpath('//input(@id='Email')')) .sendKeys('username'); driver.findElement(By.xpath('//input(@id='Passwd')')) .sendKeys('password'); driver.close(); }
Як у прикладі, ви повинні використовувати RemoteWebDriver, якщо ви використовуєте GRID, і ви повинні надати можливості браузеру. Ви повинні встановити браузер і платформу, як зазначено вище.
тестуйте веб-сайт у різних браузерах безкоштовно
У цьому прикладі я використовував платформу як WINDOWS. Ви можете використовувати будь-яку платформу відповідно до ваших вимог.
Версію браузера також можна встановити за допомогою dr.setVersion (“версія”)
Наприклад, вам потрібно виконати цей тест послідовно в декількох браузерах, вам потрібно налаштувати testng.xml. Нижче наведено набір testng.XML для вищезазначеного тесту, щоб запускати тест послідовно.
Щоб запустити тест паралельно, вам потрібно змінити файл testng.xml, як показано нижче.
Тут у testng.XML ви повинні вказати параметр як парлел = “Тести” і нитка-кол = '3' описує максимальну кількість потоків, що виконуються паралельно.
Налаштування за допомогою файлу JSON
Сітку також можна запустити разом із її конфігурацією за допомогою файлу конфігурації JSON.
Створіть файл JSON для нижчої конфігурації. Тут я створив файл JSON з назвою grid_hub.json
{ 'host': null, 'port': 4444, 'newSessionWaitTimeout': -1, 'servlets' : (), 'prioritizer': null, 'capabilityMatcher': 'org.openqa.grid.internal.utils.DefaultCapabilityMatcher', 'throwOnCapabilityNotPresent': true, 'nodePolling': 5000, 'cleanUpCycle': 5000, 'timeout': 300000, 'maxSession': 5 }
Запустіть концентратор, використовуючи команду нижче
java -jar selenium-server-standalone-2.41.0.jar -role hub –hubConfig grid_hub.json
Подібним чином створіть різні json-файли для різних вузлів відповідно до необхідної конфігурації.
Ось приклад файлу конфігурації JSON для вузла з іменем grid_node.json
{ 'capabilities': ( { 'browserName': 'chrome', 'maxInstances': 2 }, { 'browserName': 'firefox', 'maxInstances': 2 }, { 'browserName': 'internet explorer', 'maxInstances': 1 } ), 'configuration': { 'nodeTimeout':120, 'port':5555, 'hubPort':4444, 'hubHost':'localhost', 'nodePolling':2000, 'registerCycle':10000, 'register':true, 'cleanUpCycle':2000, 'timeout':30000, 'maxSession':5, } }
Для запуску вузла
java -jar selenium-server-standalone-2.41.0.jar -role rc –nodeConfig grid_node.json
Ви можете змінити всю конфігурацію браузера, maxInstance, порт, maxSession тощо у файлі JSON.
Ви можете вказати версію браузера, платформу у файлі конфігурації JSON, як показано нижче:
{
„BrowserName”: „chrome”, „version”: „8”, „platform”: „Windows”
}
Висновок
Доцільно використовуйте Selenium Grid, коли вам доводиться проводити тестування в декількох браузерах і у вас є велика кількість тестів.
У цьому модулі ми розглянули, як налаштувати концентратор та вузли Grid, а також запустити тестові випадки Grid за допомогою файлів testng.XML та JSON.
Наступний підручник No30 : Тестування автоматизації за допомогою інструменту селен та огірок . Огірок - це тестування BDD інструмент та фреймворк. Ми вивчимо особливості інструменту 'Огірок' та його використання в реальному часі, зокрема як інтегрувати Selenium WebDriver з огірком .
Будь ласка, опублікуйте свої запити, пов’язані з Selenium Grid, у коментарях нижче.
Рекомендована література
- Підручник з Docker Selenium: Як інтегрувати селенову сітку з Docker
- Автоматизація тестування за допомогою інструменту 'Огірок' та селен - Підручник № 30
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Spock для інтеграції та функціональних випробувань із селеном
- Поглиблені підручники Eclipse для початківців
- Вступ до Selenium WebDriver - Підручник з селену №8
- Підручник Geb - Тестування автоматизації браузера за допомогою інструмента Geb
- Підручник з контролю якості Parrot: Огляд функціональних інструментів тестування між браузерами