我想知道是否有人能够对Selenium
问题有所了解,这个问题让我们有点头疼。
我们对Selenium Grid的MaxSession
和MaxInstances
的含义感到困惑。我们认为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) - 与其他测试会话?
好问题....我会说它有点令人困惑....但是会尝试用简单的方式回答它。
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
MaxInstances
:这为每个节点提供了更多的插槽,例如,MaxInstances=5
每个节点最多允许5个浏览器
MaxSession
:设置可以在节点中同时运行的最大测试数量。如果MaxInstances=5
,那么MaxSession也应该至少为5。
为了扩展Anuragh27crony's answer,我制定了一个快速图表:
如果这是您的节点配置,那么您最多可以并行执行5个测试,例如以下组合:
以下组合是不可能的:
如Anuragh所述,MaxInstances适用于特定浏览器,而MaxSessions适用于整个节点。