參數在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將使用的註冊表。