Selenium Grid — это компонент экосистемы Selenium, предназначенный для параллельного выполнения тестов на нескольких машинах и браузерах одновременно. Это мощный инструмент для:
graph TD
A[Тестовый скрипт] --> B[Hub]
B --> C[Node 1: Chrome/Win]
B --> D[Node 2: Firefox/Mac]
B --> E[Node 3: Safari/iOS]
// Пример конфигурации для параллельного запуска
DesiredCapabilities chromeCap = DesiredCapabilities.chrome();
chromeCap.setPlatform(Platform.WIN10);
DesiredCapabilities firefoxCap = DesiredCapabilities.firefox();
firefoxCap.setPlatform(Platform.MAC);
new RemoteWebDriver(new URL("http://hub:4444/wd/hub"), chromeCap);
new RemoteWebDriver(new URL("http://hub:4444/wd/hub"), firefoxCap);
java -jar selenium-server-standalone.jar -role hub
java -jar selenium-server-standalone.jar -role node -hub http://hub-ip:4444/grid/register
docker run -d -p 4444:4444 --name selenium-hub selenium/hub
docker run -d --link selenium-hub:hub selenium/node-chrome
docker run -d --link selenium-hub:hub selenium/node-firefox
pipeline {
agent any
stages {
stage('Test') {
parallel {
stage('Chrome') {
steps {
script {
def chromeDriver = new RemoteWebDriver(
new URL('http://grid-hub:4444'),
new ChromeOptions()
)
// запуск тестов
}
}
}
stage('Firefox') {
steps { /* аналогично для Firefox */ }
}
}
}
}
}
Профессиональный совет: Для небольших проектов можно начать с локального Grid (на одной машине), а по мере роста - масштабироваться на отдельные серверы или облачные решения.