我正在使用硒网格来实现功能测试,我将其与testNG结合在一起以同时运行多个测试。当我运行testNG时,firefox开始执行selenium脚本,但是问题是我不能同时拥有5个以上的浏览器,而且我也不知道为什么。这是我启动集线器和节点的方法。
枢纽:
启动java -jar%seleniumPath%-port 4444 -role hub -nodeTimeout 1000
节点:
启动java -jar%seleniumPath%-角色节点-hub http://localhost:4444/grid/register-浏览器browserName = firefox,maxInstances = 1,maxSession = 1-端口5555
以我的理解,我应该一次只能打开1个Firefox浏览器。但是无论数量多少,maxInstnaces和maxSession选项似乎都将被忽略,同时运行的浏览器数量仍为5个或更少。
这是我的网格控制台的屏幕快照,显示该节点可以同时处理多少个实例。当我输入较高的数字(例如100或200)时,我会遇到相应的incons。
最佳答案
通常,maxSessions会覆盖maxInstances。
maxInstances定义您可以在selenium节点上增加特定浏览器的实例数量。
maxSessions定义了总会话数,包括我们可以在selenium节点上运行的所有浏览器。
因此maxSessions是所有浏览器的累积属性。例如,如果您为firefox设置了maxInstances = 2,为chrome设置了maxInstances = 2,则意味着您一次最多可以运行2个Firefox和2个chrome,但是如果您同时配置了maxSessions = 3,则可以旋转一次最多只能连接3个会话,可能是2 FF,1 Chrome,1 FF,2 chrome。
如果您运行:java -jar selenium-server.jar -role node -h
它会显示节点角色的所有可能选项,您可以在其中找到:
-maxSession:
可以在节点上同时运行的最大测试数量,
与所使用的浏览器无关。
最后,如果maxSessions maxSessions将被赋予优先级
这就是为什么如果将maxInstances设置为偶数100、200,但将maxSessions设置为1的原因,它将在控制台中仅显示1