Как запускать сеансы селенового сервера на разных экранах xvfb?
Моя проблема заключается в том, как получить изолированные видеопотоки из экземпляров браузера SeleniumServer. Позвольте мне объяснить.
У меня есть концентратор Selenium Server, работающий на сервере Ubuntu Server, и Selenium Server node, работающий на том же сервере, поэтому я использую режим безглавых Selenium с помощью xvfb. Я запускаю узлы следующим образом: DISPLAY=:99 java -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register
Затем я хочу получить видеопотоки тестов, запущенных там, поэтому я установил x11server, подключенный к виртуальному дисплею xvfb, и после этого я могу подключить этот удаленный сервер с помощью VNC, и я вижу свою обработку тестов. Проблема в том, что все экземпляры браузера внутри node, отображаемые на одном виртуальном дисплее (# 99), и когда мне нужно одновременно запускать несколько тестов, я вижу, что несколько экземпляров браузера накладываются один за другим. Но я хочу записать потоки видео с ошибками, поэтому я не могу этого сделать. Поэтому мне нужно иметь возможность подключаться к каждому обозревателю виртуального экрана.
Я думаю, что я могу решить эту проблему, настроив сервер xvfb каким-то образом, чтобы заставить его создать изолированный виртуальный экран или экран (xvfb имеет многоэкранную поддержку, не так ли?) для каждого клиента (экземпляр браузера в моем случае). Но я пытался это сделать, и я не получил результата. Также я могу использовать другой виртуальный дисплей (а не xvfb), если это необходимо для решения этой проблемы.
Пожалуйста, помогите мне получить изолированные видеопотоки из каждого экземпляра браузера:) Большое спасибо и извините за мой английский.
Ответы
Ответ 1
С центром селена вы можете добавлять браузеры отдельно в свои собственные сеансы Xvfb
java -jar selenium-server-standalone-2.33.0.jar -role hub&
затем подключите каждый браузер отдельно в своем собственном сеансе Xvfb, DISPLAY и порту
export DISPLAY=:11
Xvfb :11 -screen 0 1024x768x16 &
java -jar selenium-server-standalone-2.33.0.jar \
-role node \
-port 4441
-hub http://localhost:4444/grid/register \
-browser "browserName=firefox,version=19,maxInstances=5"&
Ответ 2
Для такого использования вы обычно можете использовать команду xvfb-run
(которая может автоматически выбирать дисплей, но его можно настроить)
Затем вы можете создать запуск firefox script, который выполнил бы xvfb-run firefox
, который вы могли бы использовать как команду запуска selenium firefox (указанную как FirefoxBinary
)