Запис буде корисна для новачків, хто жодного разу не стикався з grid-му, але хотів спробувати.
І так, що ж таке selenium grid. Це розподілена сісти selenium серверів для віддаленого запуску браузерів.
І так, для початку нам необхідно завантажити поcледнюю версію jar файлу selenium-server-standalone з офіційного сайту selenium. На момент написання статті це версія 3.1.0
Після того як ми це зробили, нам необхідно запустити hub. (Selenium-server-standalone можна запустити як в режимі hub, так і в режимі node) Hub - це центральний диспетчер, на який ми будемо реєструвати необхідні нам сервера і на який будемо слати всі запити від тестів.
Відкриваємо консоль, переходимо в директорію, в якій знаходиться скачав нами selenium-server-standalone і виконуємо команду:
java -jar selenium-server-standalone-3.1.0.jar -role hub
В консолі у вас повинно з'явиться інформація про успішний старт hub-a.
Перший рядок означає, що тепер ми можемо реєструвати вузли на урл, де запущений hub. Другий рядок означає,
що hub успішно запущений.
Далі необхідно запустити так звані вузли (node), за якими державна служба (hub) буде розподіляти запущені нами тести.
Node - це по суті екземпляр selenium server, на якому можна стартанути n-ну кількість браузерів.
В даному прикладі я реєструватимуть і стартувати selenium node-и на тій же машині, на якій у мене запущений hub. Звичайно ж можна запускати hub на одній віддаленій машині, а node-и на купі інших віддалених машин і реєструвати на поточний хаб, власне кажучи для цього selenium grid і потрібен.
Відкриваємо нове вікно з консоллю, в якій вводимо наступну команду
В консолі ми бачимо інформацію про те, що вузол успішно запустився
running selenium node
При цьому на консолі hub-a ми бачимо інформацію про те, що зареєстрований новий вузол
В консолі ми бачимо, що на даний момент до hub підключена одна node. Коли стартує node, вона не може визначити які браузери доступні і тому використовується стандартна конфігурація складається з 5 браузерів chrome, з 5 ff і 1 IE.
selenium grid console
При цьому на всіх машинах, де у вас запущені node і де ви плануйте ганяти свої тести на різних браузерах, для кожного браузера на відповідній машині повинен лежати свій драйвер і налаштована змінна path.
Детальну конфігурацію node можна переглянути, натиснувши на вкладку Configuration даної node.
selenium grid config
В консолі ми бачимо, що на вузлі одна іконка хрому стала задізейбленной. це означає що на вузлі в даний момент запустився браузер chrome і ходить наш тест.
А тепер запустимо ще 1 вузол на нашій локальній машині, зареєструвавши його на все той же наш локальної запущений хаб.
Відкриваємо нову консоль і вводимо
Так як ми запускаємо вузол знову локально, на тій же машині, то командою -port краще вказати номер порту, щоб не вийшло так, що вузол буде пробувати запуститися на тому порту, на якому запущений інший вузол.
Дивимося в консоль про успішний запуск вузла
stating new node
В консолі з запущеним hub-ом ми бачимо інформацію про те, що в диспетчері зареєстрований новий вузол
Яким чином у нас налаштований selenium grid на одному з проектів. У нас є кілька потужних машин, на яких запущені хаб і Ноди. При цьому на кожній машині на включенні налаштовані Тригер, які запускають батники, в яких прописані старти хабів і нодов з потрібними конфігураціями. Приблизний батник на одній з windows машин
Параметр browserName означає, що на вузлі повинен використовуватися браузер chrome.
Параметр -maxInstances задає максимальну кількість примірників одного підтримуваного браузера, які можуть бути запущені на одному вузлі.
Параметр -maxSession задає максимальну кількість браузерів, які можуть бути запущені паралельно на одному вузлі.
У наступній статті спробую описати мої експерименти з Selenium Grid Extras
Схожі записи
- Як встановити бібліотеку Selenium в Eclipse
- Як встановити TestNG в Eclipse
- Задерло NoSuchElementException в Selenium WebDriver
- Відгук про оновлений курсі «Програмування на java для тестувальників»
- Як встановити Groovy консоль.