Доброго дня.
Поставили задачу: гонять тесты под UNIX.
Почитали, выбрали xvfb для запуска. Установили все. Работает.
НО, есть проблема с прогоном тестов: 1 машина == 1 инстансу chrome
У нас виртуалки выдерживают 4 chrome спокойно. В настройках ноды выставляем 4 (на винде все ок)
После запуска одного браузера на ноде, остальные падают с исключением:
selenium.common.exceptions.WebDriverException: Message: Unable to find a free port
Как я понимаю chromedriver пытается стартануть на дефолтном порту 9515, который уже занят.
На винде порты выбираются рендомно, как я понимаю.
Запускаем ноду вот так:
DISPLAY=:99 xvfb-run -a -n 1 -l -s “-screen 0, 8000x2000x16” java -jar /home/autotest/selenium-server-standalone-2.48.2.jar -role node -nodeConfig nodeconfig.json
Помогите решить проблему.
UPD1
Exception с ноды
Caused by: java.lang.RuntimeException: Unable to find a free port
at org.openqa.selenium.net.PortProber.findFreePort(PortProber.java:67)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:292)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:138)
… 14 more
13:45:41.442 WARN - Exception: Unable to find a free port
Посмотрел как запустил 1 chromedriver сервер, все ок вроде, порт не стандартный
autotest@test-selenium26-unix ~]$ ps -fp 3795
UID PID PPID C STIME TTY TIME CMD
autotest 3795 3762 3 13:45 pts/5 00:00:00 /home/autotest/chromedriver --port=1024
UPD2
Позапускал под Windows, порты все время для запуска chromedriver разные.
А под UNIX запустил два раза, порт 1024 оба был, такое ощущение, что он его не генерирует или не видит другие