Selenium Grid中的关于Hub的参数说明

本文深入解析Selenium Grid的配置参数,包括hubConfig、matcher、newSessionWaitTimeout等,阐述其作用与应用场景,帮助读者理解如何高效配置和优化Selenium Grid环境。

参数在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",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值