Селеновая сетка: MaxSessions против MaxInstances

Мне было интересно, может ли кто-нибудь пролить свет на Selenium вопрос, который заставил нас немного ломать голову.

Мы не понимаем значения MaxSession и MaxInstances в Selenium Grid. Мы думаем, что MaxSession - это общее количество тестовых сеансов, которые могут выполняться на одном узле. И мы также думаем, что MaxInstances - это общее количество браузеров, которое может открыть тест.

Или MaxInstances общее количество браузеров, доступных узлу?

Мы используем следующую команду:

java -Xrs -jar selenium-server.jar -role node -port 44506 -hub http://localhost:44500
/grid/register -firefoxProfileTemplate SeleniumProfile -timeout 300000 -browser 
"browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver" -browser 
"browserName=chrome,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver"

Мы думаем, что способ использования нашего узла (см. Выше) - это 5 одновременных тестовых сессий по умолчанию.

Доступно ли для каждого теста 20 браузеров?

Или в каждом тестовом сеансе 20 браузеров (10 Chrome / 10 FF) используются совместно с другими тестовыми сеансами?


person Christian Clarke    schedule 05.12.2012    source источник


Ответы (4)


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

MaxInstances. Здесь указано .... сколько экземпляров одной и той же версии браузера может работать в удаленной системе.

For example, i have a FF12,IE and i declared the command as follows
-browser browserName=firefox,version=12,maxInstances=5,platform=LINUX
-browser browserName=InternetExplorer,version=9.0,maxInstances=5,platform=LINUX

Таким образом, я могу запустить 5 экземпляров Firefox 12 и 5 экземпляров IE9 одновременно на удаленном компьютере. Таким образом, всего пользователь может запускать 10 экземпляров разных браузеров (FF12 и IE9) параллельно.

MaxSession Здесь указано .... сколько браузеров (Любой браузер и любая версия) могут работать параллельно в удаленной системе. Таким образом, это переопределяет настройки максимального количества экземпляров и может ограничить количество экземпляров браузера, которые могут работать параллельно.

For above example, when maxSession=1 forces that you never have more than 1 browser running. 

With maxSession=2 you can have 2 Firefox tests at the same time, or 1 Internet Explorer and 1 Firefox test). 

Независимо от того, какие MaxInstances вы определили.

Для получения более подробной информации посетите - https://seleniumhq.github.io/docs/grid.html < / а>

person Anuragh27crony    schedule 05.12.2012
comment
Так как «MaxSession» относится ко всей сетке, его следует использовать с конфигурацией концентратора. не так ли? и «MaxInstances», поскольку он связан с количеством экземпляров конкретного браузера, его следует использовать с конфигурацией узла. Поправьте меня, если я ошибаюсь - person sjethvani; 30.08.2018
comment
@sjethvani нет, это никак не связано с сеткой. Сетка - это, по сути, делегатор, она получает тесты, которые затем распределяет между своими узлами. Однако один узел может также выполнять несколько тестов параллельно. И MaxSessions, и MaxInstances являются атрибутами узла - MaxInstances ограничивает количество тестов, которые могут выполняться параллельно с определенным браузером на соответствующем узле. Однако MaxSession ограничивает количество тестов, которые могут выполняться параллельно на узле, независимо от того, какой браузер они используют. - person PixelMaster; 18.07.2019

Чтобы расширить ответ Anuragh27crony, я нарисовал быструю диаграмму:

введите здесь описание изображения

Если это конфигурация вашего узла, то вы можете выполнить не более 5 тестов параллельно, например, в следующих комбинациях:

  • 3 * хром, 2 * firefox
  • 2 * хром, 2 * firefox, 1 * край
  • 5 * край
  • 3 * хром

Следующие комбинации НЕ возможны:

  • 4 * хром (превышает Chrome maxInstances)
  • 6 * край (превышает maxSessions)
  • 3 * хром, 3 * firefox (превышает maxSessions)

Как упоминал Anuragh, MaxInstances применяется к конкретному браузеру, а MaxSessions применяется ко всему узлу.

person PixelMaster    schedule 18.07.2019

Согласно документации в Настройка узлов по умолчанию, начиная Selenium Grid Node позволяет одновременно использовать 11 браузеров:

  • 5 Firefox
  • 5 Хром
  • 1 Internet Explorer

По умолчанию максимальное количество одновременных тестов равно 5. Чтобы изменить этот и другие параметры браузера, вы можете передать параметры каждому переключателю -browser (каждый переключатель представляет узел на основе ваших параметров). Если вы используете параметр -browser, браузеры по умолчанию будут проигнорированы и будет использоваться только указанная вами командная строка.


maxInstances

maxInstances - это необязательный параметр, который можно передать через необязательный параметр -browser. .

Вариант использования 1

Чтобы настроить Selenium Grid Node для 20 экземпляров Firefox version = X.Y.Z, вы можете использовать следующее решение:

  • Команда:

    java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=20,platform=WINDOWS
    
  • Журналы консоли узла:

    C:\Utility\SeleniumGrid>java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=20,platform=WINDOWS
    16:54:11.843 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
    16:54:12.003 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Launching a Selenium Grid node on port 6318
    2020-02-14 16:54:12.523:INFO::main: Logging initialized @1022ms to org.seleniumhq.jetty9.util.log.StdErrLog
    16:54:12.860 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
    16:54:12.974 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 6318
    16:54:12.974 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Selenium Grid nodeis up and ready to register to the hub
    16:54:13.161 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms.
    16:54:13.765 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.1.125:4444/grid/register
    16:54:13.962 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
    
  • Снимок консоли Grid:

GidNodeFirefox20

Вариант использования 2

Чтобы настроить Selenium Grid Node для 10 экземпляров Firefox version = ABC и 20 экземпляров Chrome version = XYZ вы можете использовать следующее решение:

  • Команда:

    java -Dwebdriver.gecko.driver=geckodriver.exe -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=10,platform=WINDOWS -browser browserName=chrome,version=X.Y.Z,maxInstances=20,platform=WINDOWS
    
  • Снимок консоли Grid:

GidNodeFirefox10Chrome20


-maxSession

-maxSession также является необязательным параметром, который можно передать как основной параметр, чтобы настроить максимальное количество контекстов просмотра, которые могут работать параллельно на определенном узле. Это отличается от maxInstance поддерживаемых браузеров (Пример: для узла, поддерживающего Firefox версии ABC, Firefox версии PQR и Chrome версии XYZ, maxSession = 1 гарантирует, что у вас никогда не будет запущено более одного браузера. . С maxSession=2 вы можете одновременно выполнять 2 теста Firefox или 1 тест Firefox и 1 тест Chrome).

Пример:

java -Dwebdriver.gecko.driver=geckodriver.exe -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser "browserName=firefox,version=A.B.C,maxInstances=10,platform=WINDOWS" -browser "browserName=firefox,version=P.Q.R,maxInstances=10,platform=WINDOWS" -browser "browserName=chrome,version=X.Y.Z,maxInstances=20,platform=WINDOWS" -maxSession 2
  • Снимок консоли Grid:

maxSession

person DebanjanB    schedule 14.02.2020

MaxInstances: это дает вам больше слотов на узел. Например, MaxInstances=5 позволит использовать максимум 5 браузеров на узел.

MaxSession: устанавливает максимальное количество тестов, которые могут выполняться одновременно в узле. если MaxInstances=5, то MaxSession также должно быть не менее 5.

подробнее см. https://github.com/SeleniumHQ/docker-selenium

person Terefe    schedule 09.03.2019