Selenium Grid中的關於Hub的參數說明

參數在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將使用的註冊表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章