我们目前正在为我们的手动QA团队构建一个Web界面,以便能够运行Selenium测试,这些测试通过Selenium Grid在远程计算机上执行。
我正在寻找一些方法来远程检查Selenium Grid是否当前执行任何测试,这样我就可以将从Web界面发送到Grid的任何其他运行排队,直到上一次测试执行完成。这将确保我们避免过多的同时测试运行导致网格过载。
我搜索了StackOverflow并阅读了Selenium文档以查看是否有任何可用于检查此命令的命令,但是空出来了。
答案 0 :(得分:6)
您可以在网格控制台中查看此详细信息。例如,如果您在本地计算机上运行集线器,则控制台URL为http://localhost:4444/grid/console。如果您在另一台计算机上运行网格集线器,则在控制台URL中将本地主机替换为网格集线器计算机的IP或主机名。
有很多方法可以了解它。
答案 1 :(得分:1)
您不需要自己管理测试队列。 Selenium网格和节点将其安装到位。因此,为了减少每个节点上的过载,可以使用一些配置。我们有maxSession
和maxInstance
个参数。
maxSession
- 节点上可以并行运行的最大浏览器数
maxInstance
- 可以在节点上并行运行的相同浏览器实例的最大数量。
F.e。 maxSession = 3,maxInstance = 2.你可以拥有2个firefox + 1 chrome
你没有提到你的硒驱动版本是什么。所以我们说它是最新的3.x.x
。您可以创建node-config.json
文件并存储此参数。
{
"capabilities": [
{
"browserName": "chrome",
"maxInstances": "2",#settings per browser
}
],
"maxSession": "3", #settings per node
}
启动节点:
java -jar /path_to_driver/serve.jar -role node -hub HUB_ADDRESS -nodeConfig /path_to_node_config/node-config.json
因此,当您想要运行新测试时,网格将注册它并等待一个空闲节点。所以它可以为你保留一个堆栈
此外,您可以使用bash命令parallel
并创建测试数组,然后以并行方式运行它。让我们同时说5个工作岗位。
parallel --jobs 5 -k --gnu ::: "${arrayToRun[@]}"
有关Selenium configuration的更多信息 有关parallel
中的运行测试的更多信息