2016-10-27 3 views
0

私たちはグリッド・コンソールを使って、ノードの状態がテストを実行しているかどうかを確認します。したがって、ハブの状態を取得する他の方法がある場合、使用されているかどうかを判断するにはどうすればよいですか?ハブステータスを取得する方法、つまり、テストを実行するかどうかを判断するにはどうすればよいですか?

これを取得する実際の理由は、ハブとノードマシンのクリーンアップ/再起動を行うジョブを作成することです。

PS:私はいくつかの検索をしましたが、私は今のところどこにも行けませんでした。

答えて

1

このリンクをご覧ください。http://www.seleniumhq.org/docs/07_selenium_grid.jsp - 「ハブおよび/またはノードでカスタムサーブレットを追加する」セクションに進んでください。

org.openqa.grid.web.servlet.RegistryBasedServletに拡張されたカスタマイズされたサーブレットを実行すると、情報を得ることができます。このサーブレットにはRegistryオブジェクトゲッターメソッドgetRegistry()があります。

レジストリオブジェクトには、現在実行中のテストのコレクションを返すgetActiveSessions()メソッドがあります。あなたの要件のサイズなどを確認することができます。

org.openqa.grid.webパッケージのセレンソースコードを見ると、既にコーディングされたサーブレットがたくさんあります。

3

このためにカスタムサーブレットを作成する必要はありません。

あなたは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でリッスンしています、 freetotalの値を解析すると、必要なものを得ることができます。たとえば、freeの値がtotalの値に等しい場合、新しいセッションが実行されていないことを意味します。

関連する問題