参数在org.openqa.grid.internal.cli.GridHubCliOptions中。大家可以直接去看,这里需要添加一些使用中的说明以及感悟。
-hubConfig
- 类型:String
- 说明:表示一个JSON文件(使用grid2的格式),这个文件中定义了Hub的参数。
- 详细:这个是在启动时通过
Java jar -role hub -hubConfig %configfile%添加进来的。官方为了在你没有给出配置文件时能正确运行,在org.openqa.grid.common.defaults这个包中还默认带了一份,可以作为参考。我这里贴一份我的配置:
{
"_comment": "Configuration for Hub - hubConfig.json",
"port": 5555,
"newSessionWaitTimeout": -1,
"servlets": [
"CustomServlet"
],
"withoutServlets": [],
"custom": {},
"capabilityMatcher": "org.openqa.grid.internal.utils.DefaultCapabilityMatcher",
"registry": "org.openqa.grid.internal.DefaultGridRegistry",
"throwOnCapabilityNotPresent": false,
"cleanUpCycle": 5000,
"role": "hub",
"platform": "WINDOWS",
"debug": true,
"timeout": 1800,
"maxSession": 90,
"jettyMaxThreads": 100,
"browserTimeout": 0,
"prioritizer": null
}
-matcher, -capabilityMatcher
- 类型:String
- 说明:指定一个类名。这个类必须实现CapabilityMatcher接口。指定Hub用来定义是否可以将该请求分配给Node节点的的逻辑。例如,在指定浏览器版本时,要让匹配过程使用正则表达式而不是完全匹配,那么既可以通过自定义类,然后添加此参数进行自定义改造。那么,Grid生态系统的所有Node节点都将使用此处自定义的CapacityMatcher。
- 详细:内部默认实现了一个
org.openqa.grid.internal.utils.DefaultCapabilityMatcher,内部维护了一个验证列表。
private final List<Validator> validators = new ArrayList<>();
{
validators.addAll(Arrays.asList(
new PlatformValidator(),
new AliasedPropertyValidator(BROWSER_NAME, "browser"),
new AliasedPropertyValidator(CapabilityType.BROWSER_VERSION, CapabilityType.VERSION),
new SimplePropertyValidator(CapabilityType.APPLICATION_NAME),
new FirefoxSpecificValidator(),
new SafariSpecificValidator()));
}
需要allMatch才能匹配成功。
-newSessionWaitTimeout
- 类型:String
- 说明:单位为ms。这是一个新的测试等待Node节点变得可用时的超时时间。发生超时时,测试将在启动浏览器之前引发异常。当未指定,零或负值则代表会无限等待。
- 详细:简单来说就是你打开一个Driver,但是半天没有可用的node,你就会被这个超时时间断开。
-prioritizer
- 类型:String
- 说明:这指向一个类名。这个类必须实现Prioritizer接口。如果要对队列处理新绘画请求的顺序进行排序,请指定自定义优先级排序器。默认为Null(无优先级=FIFO)。
-throwOnCapabilityNotPresent
- 类型:Boolean
- 说明:如果为true,如果当前未注册兼容Proxy(存在于在Hub中,是一个你现在的任务所关联的Node浏览器的对象,代理Node浏览器功能),则Hub将拒绝所有测试请求。如果设置为false,则请求将会进入队列直到有一个匹配请求的capability的Node注册到了Hub上来。
- 详细:简单点说,就是如果你想向Hub申请一个Chrome,但是申请不到。这个时候,True就会快速失败,False就会再等等,等到有可用Chrome的Node注册进来为止。
-registry
- 类型:Boolean
- 说明:一个类名。实现GridRegistry接口的类。 指定Hub将使用的注册表。
以下来自父类
-cleanUpCycle
- 类型:Integer
- 单位:ms
- 说明:指定Hub多久轮询一次正在运行的代理以获取超时(即挂起)的线程。
-custom
- 类型:String
- 说明:逗号分开的
key=value对来自定grid拓展。一般来说不需要,这个主要是为了开发用的,可能在未来的版本中被抛弃。 - 示例:Example: -custom myParamA=Value1,myParamB=Value2",
本文深入解析Selenium Grid的配置参数,包括hubConfig、matcher、newSessionWaitTimeout等,阐述其作用与应用场景,帮助读者理解如何高效配置和优化Selenium Grid环境。

1283

被折叠的 条评论
为什么被折叠?



