Есть ли способ сделать Selenium Grid 2 DesiredCapabilities независимым от браузера?

Мне интересно, есть ли (предпочтительно встроенный) способ для концентраторов Selenium запрашивать узлы, у которых есть какой-либо доступный браузер. По сути, я хочу, чтобы мой концентратор указывал что-то вроде «BrowserName = 'any'», соответствовал узлу, на котором запущено меньше экземпляров, чем его maxInstances, а затем пусть узел решает, в каком браузере работать.

Мотивация этого заключается в том, что я хочу максимизировать количество тестов, работающих параллельно на любом заданном узле, не имея нескольких экземпляров какого-либо одного браузера. Мне все равно, какой браузер работает для любого данного теста.

Для справки, сейчас я использую selenium server 2.17.


person SolsticeShard    schedule 26.01.2012    source источник


Ответы (2)


Акк, это раздражает.

Я почти уверен, что есть параметр командной строки, который позволяет вам переопределить указанное имя браузера, но теперь я не могу его найти.

Если мне не изменяет память, параметр позволяет вам делать более или менее то, что вы просите, независимо от того, какие браузеры узел говорит, что у него есть, и независимо от того, что запрашивает хаб. всегда запускается один конкретный браузер.

Примечание для себя: создайте правильный список всех параметров командной строки для селена и, возможно, отправьте его команде для включения в вики.

Одним из способов добиться этого в любом случае было бы написать свой собственный класс «CapabilityMatcher», но это может быть не вариант, если вы не хотите создать собственный JAR, и вы хотите, чтобы hub делал изменение браузера, а не отдельных узлов.

person pete otaqui    schedule 12.03.2012
comment
ОК - нашел, и он называется forceBrowserMode. Похоже, это относится только к Selenium-RC, а не к Webdriver. groups.google.com/group/selenium-developers/ browse_thread/ thoughtworks-studios.com/docs/ twist/2.0/help/ gist.github.com/1647013 - person pete otaqui; 12.03.2012
comment
Круто, я думаю, это должно выполнить то, что мне нужно (так или иначе). - person SolsticeShard; 23.03.2012

Ну вот:

java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register -maxSession 3 -browser browserName=firefox,maxInstances=1 -browser browserName=chrome,maxInstances=1 ...

person arket    schedule 06.03.2012
comment
Я не уверен, что это выполняет то, что я описал. Если не ошибаюсь, это зарегистрирует ноду со всеми открытыми возможностями, но хабу все равно придется указать браузер в DesiredCapabilities. Мои узлы в настоящее время регистрируются с тремя возможностями браузера (Chrome, Firefox и IE), но концентратор должен циклически запрашивать эти три (попутно перехватывая исключения), чтобы гарантировать, что все три браузера работают одновременно. Я хочу, чтобы хаб сказал, что запустит этот тест на узле со свободными браузерами и позволит узлу выбрать любой из открытых. - person SolsticeShard; 07.03.2012