我使用selenium网格实现功能测试,我将它与testNG结合起来同时运行多个测试。当我运行testNG时,firefox开始执行selenium脚本,但问题是我不能同时拥有5个以上的浏览器而且我不知道为什么。这是我启动集线器和节点的方式。
集线器:
启动java -jar%seleniumPath%-port 4444 -role hub -nodeTimeout 1000
节点:
启动java -jar%seleniumPath%-role node -hub http://localhost:4444/grid/register -browser browserName = firefox,maxInstances = 1,maxSession = 1 -port 5555
我理解它的方式,我应该一次只能打开一个firefox浏览器。但无论数字是多少,maxInstnaces和maxSession选项似乎都会被忽略,同时运行的浏览器数量仍为5或更少。
这是我的网格控制台的屏幕截图,显示了此节点可以同时处理多少实例。当我把一个像100或200这样的高数字时,我有相应的不一致。
答案 0 :(得分:1)
通常maxSessions会覆盖maxInstances。 maxInstances定义了您可以在selenium节点上启动的特定浏览器的实例数。
maxSessions定义了总会话数,包括我们可以在selenium节点上运行的所有浏览器。
所以maxSessions是所有浏览器的累积属性。例如,如果您为firefox设置了maxInstances = 2,为chrome设置了maxInstances = 2,则意味着最多可以一次运行2个firefox和2个chromes,但是如果你配置了maxSessions = 3,那么你可以旋转一次只能增加3个会话,可能是2个FF,1个Chrome,1个FF,2个chrome。
如果您运行:
java -jar selenium-server.jar -role node -h
它将显示您可以找到的节点角色的所有可能选项:
-maxSession:
可以在节点上同时运行的最大测试数,
独立于使用的浏览器。
最后,如果maxSessions< [所有浏览器的maxInstances], maxSessions将优先考虑 这就是为什么如果你将maxInstances设置为100,200但是将maxSessions保持为1它将在控制台中仅显示1