Подтвердить что ты не робот

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

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

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

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

Используемая нами команда:

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"

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

Есть ли у каждого теста 20 доступных ему браузеров?

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

4b9b3361

Ответ 1

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

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. Это говорит о том, сколько браузеров (любой браузер и любая версия) может одновременно работать параллельно в удаленной системе. Таким образом, это переопределяет настройки Max Instances и может ограничивать количество экземпляров браузера, которые могут выполняться параллельно.

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

Ответ 2

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

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

увидеть больше на https://github.com/SeleniumHQ/docker-selenium

Ответ 3

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

enter image description here

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

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

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

  • 4 * chrome (превышает Chrome maxInstances)
  • Край 6 * (превышает maxSessions)
  • 3 * chrome, 3 * firefox (превышает maxSessions)

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