私たちはグリッド・コンソールを使って、ノードの状態がテストを実行しているかどうかを確認します。したがって、ハブの状態を取得する他の方法がある場合、使用されているかどうかを判断するにはどうすればよいですか?ハブステータスを取得する方法、つまり、テストを実行するかどうかを判断するにはどうすればよいですか?
これを取得する実際の理由は、ハブとノードマシンのクリーンアップ/再起動を行うジョブを作成することです。
PS:私はいくつかの検索をしましたが、私は今のところどこにも行けませんでした。
私たちはグリッド・コンソールを使って、ノードの状態がテストを実行しているかどうかを確認します。したがって、ハブの状態を取得する他の方法がある場合、使用されているかどうかを判断するにはどうすればよいですか?ハブステータスを取得する方法、つまり、テストを実行するかどうかを判断するにはどうすればよいですか?
これを取得する実際の理由は、ハブとノードマシンのクリーンアップ/再起動を行うジョブを作成することです。
PS:私はいくつかの検索をしましたが、私は今のところどこにも行けませんでした。
このリンクをご覧ください。http://www.seleniumhq.org/docs/07_selenium_grid.jsp - 「ハブおよび/またはノードでカスタムサーブレットを追加する」セクションに進んでください。
org.openqa.grid.web.servlet.RegistryBasedServlet
に拡張されたカスタマイズされたサーブレットを実行すると、情報を得ることができます。このサーブレットにはRegistry
オブジェクトゲッターメソッドgetRegistry()
があります。
レジストリオブジェクトには、現在実行中のテストのコレクションを返すgetActiveSessions()
メソッドがあります。あなたの要件のサイズなどを確認することができます。
org.openqa.grid.webパッケージのセレンソースコードを見ると、既にコーディングされたサーブレットがたくさんあります。
このためにカスタムサーブレットを作成する必要はありません。
あなたは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レスポンスを確認する必要があり、あなたのグリッドがlocalhost
上で実行されていると仮定すると、ポート4444
でリッスンしています、 free
とtotal
の値を解析すると、必要なものを得ることができます。たとえば、free
の値がtotal
の値に等しい場合、新しいセッションが実行されていないことを意味します。