我们有网格控制台来检查节点是否状态,是否正在运行任何测试。那么,如果有任何其他方式来获取集线器的状态,以确定它是否被使用?
获得此功能的实际原因是创建一个作业来清理/重新启动集线器和节点计算机。
PS:我做了一些搜索,但截至目前我无法解决问题。答案 0 :(得分:5)
您无需为此构建自定义servlet。
假设您的网格正在localhost
上运行并且正在侦听端口4444
,如果您调用URL http://localhost:4444/grid/api/hub
(GET操作),您应该看到如下的JSON响应
{
"success":true,
"capabilityMatcher":"org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"newSessionWaitTimeout":-1,
"throwOnCapabilityNotPresent":true,
"cleanUpCycle":5000,
"custom":{
},
"host":"localhost",
"maxSession":1,
"servlets":[
],
"browserTimeout":0,
"debug":false,
"jettyMaxThreads":-1,
"port":4444,
"role":"hub",
"timeout":1800,
"newSessionRequestCount":0,
"slotCounts":{
"free":0,
"total":0
}
}
在上面的JSON响应中,如果您解析free
和total
的值,您应该能够获得所需的内容。例如,如果free
的值等于total
的值,则表示没有新会话在运行。
答案 1 :(得分:1)
查看此链接 - http://www.seleniumhq.org/docs/07_selenium_grid.jsp - 转到"在集线器和/或节点上添加自定义servlet"部分。
您可以运行扩展org.openqa.grid.web.servlet.RegistryBasedServlet
的自定义servlet,它将为您提供信息。此servlet具有Registry
对象getter方法getRegistry()
。
Registry对象有一个getActiveSessions()
方法,它返回当前正在运行的测试集合。您可以根据您的要求检查尺寸等。
查看org.openqa.grid.web包中的selenium源代码,已经编写了许多servlet。