如何检查远程 Selenium Grid 中心是否正在执行测试?
How to check if a remote Selenium Grid hub is executing tests?
我们目前正在为我们的手动 QA 团队构建一个 Web 界面,以便能够 运行 Selenium 测试,这些测试通过 Selenium Grid 在远程机器上执行。
我正在寻找某种方法来远程检查 Selenium 网格是否当前 正在执行任何测试,这样我就可以对发送到网格的任何其他 运行 进行排队从 Web 界面直到上一个测试执行完成。这将确保我们避免因太多同时测试 运行s.
而使网格过载
我搜索了 Whosebug 并阅读了 Selenium 文档,看看是否有任何命令可用于检查此问题,但结果是空的。
您不需要自己管理测试队列。 Selenium 网格和节点已就位。因此,为了减少每个节点上的过载,可以使用一些配置。我们有 maxSession
和 maxInstance
参数。
maxSession
- 节点上可以运行并行的最大浏览器数量
maxInstance
- 可以在节点上并行 运行 的相同浏览器实例的最大数量。
F.e。 maxSession = 3, maxInstance = 2。你可以有 2 firefox + 1 chrome
您没有提到您的 selenium 驱动程序版本是多少。所以可以说它是最新的 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[@]}"
中有关 运行 测试的更多信息
您可以在网格控制台中查看此详细信息。例如,如果您是 运行 本地计算机中的集线器,则控制台 URL 是 http://localhost:4444/grid/console。如果您是 运行 另一台计算机上的网格集线器,则在控制台 URL.
中将本地主机替换为网格集线器计算机的 IP 或主机名
有很多方法可以知道它。
如果任何节点被测试执行占用,则浏览器图标将变灰。(有时,您必须刷新页面才能获得状态)。
否则,如果您将鼠标悬停在控制台中的任何浏览器图标上,如果它正在执行任何测试,它将显示会话 ID。
在 selenium hub 命令行 window 日志中。它将以频繁的间隔列出可用节点。
我们目前正在为我们的手动 QA 团队构建一个 Web 界面,以便能够 运行 Selenium 测试,这些测试通过 Selenium Grid 在远程机器上执行。
我正在寻找某种方法来远程检查 Selenium 网格是否当前 正在执行任何测试,这样我就可以对发送到网格的任何其他 运行 进行排队从 Web 界面直到上一个测试执行完成。这将确保我们避免因太多同时测试 运行s.
而使网格过载我搜索了 Whosebug 并阅读了 Selenium 文档,看看是否有任何命令可用于检查此问题,但结果是空的。
您不需要自己管理测试队列。 Selenium 网格和节点已就位。因此,为了减少每个节点上的过载,可以使用一些配置。我们有 maxSession
和 maxInstance
参数。
maxSession
- 节点上可以运行并行的最大浏览器数量
maxInstance
- 可以在节点上并行 运行 的相同浏览器实例的最大数量。
F.e。 maxSession = 3, maxInstance = 2。你可以有 2 firefox + 1 chrome
您没有提到您的 selenium 驱动程序版本是多少。所以可以说它是最新的 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[@]}"
您可以在网格控制台中查看此详细信息。例如,如果您是 运行 本地计算机中的集线器,则控制台 URL 是 http://localhost:4444/grid/console。如果您是 运行 另一台计算机上的网格集线器,则在控制台 URL.
中将本地主机替换为网格集线器计算机的 IP 或主机名有很多方法可以知道它。
如果任何节点被测试执行占用,则浏览器图标将变灰。(有时,您必须刷新页面才能获得状态)。
否则,如果您将鼠标悬停在控制台中的任何浏览器图标上,如果它正在执行任何测试,它将显示会话 ID。
在 selenium hub 命令行 window 日志中。它将以频繁的间隔列出可用节点。