0

RemoteWebDriver クライアント オブジェクトを使用してSauce テストを開始した後、グリッド リクエストのネットワーク タイムアウトを検出するにはどうすればよいですか? フレームワークでキャッチしたいシナリオがあります。それは、SauceLabs への接続が機能しているが、接続が失敗した場合です。言い換えれば、これは私の Selenium テストがブラウザ .get() を送信し、SauceLabs で新しい URL を使用して新しいブラウザを開くネットワーク シナリオですが、ネットワークの問題のために後続の JSON パケットが失敗し、テストがハングしているように見えます。 . 問題の内容はわかっていますが、単体テスト フレームワークにネットワークの問題を報告してもらいたいだけです。現在、この状態が発生すると、RemoteWebDriver は無期限にタイムアウトし、これは受け入れられません。

これを解決するには、RemoteWebDriver クライアントが最初に JSON コマンドを Grid Hub に送信しようとしたときに、クライアント側のタイムアウトがどのように機能するかを理解する必要があることを私は知っています。

グリッドの起動時にタイムアウトを指定できることはわかっていますが、同様のオプションがクライアント側にないように見えますか?

Hub start :- java -jar /tools/grid/selenium-server-standalone-2.35.0.jar 
 -role hub -maxSession 20 -browserTimeout 240 
 -remoteControlPollingIntervalInSeconds 180 -sessionMaxIdleTimeInSeconds 240 
 -newSessionMaxWaitTimeInSeconds 250 -timeout 30
4

1 に答える 1

0

ソース側でアイドルタイムアウトを設定すると、これに役立つ場合があります: http://saucelabs.com/docs/additional-config#idle-timeout

Selenium スクリプトからコマンドを受信しない場合、この必要な機能 (デフォルトでは 90 秒に設定) はタイムアウトになります。ネットワークの問題を直接検出することはできませんが、これにより、ブロックされた応答によって議事録が消費されるのを防ぐことができます.

Sauce Connect ( https://saucelabs.com/docs/connect ) を利用することもできます。これは、ファイアウォールで保護されたリソースに対してテストできる無料のスタンドアロン Java ユーティリティです。Connect はまた、ドロップされたパケットをチェックし、接続を再確立するために (特定のポイントまで) それらを自動的に再送信します。

于 2013-10-09T20:26:13.467 に答える