Селеновая сетка: 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) в пуле - с другими сеансами тестирования?
Ответы
Ответ 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 - ко всему узлу.