2013-10-08 43 views
0

如何使用RemoteWebDriver客戶端對象在啓動醬料測試後檢測網格請求的網絡超時?我有一個場景,我希望我的框架能夠捕獲,那就是當連接外部到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 

回答

0

設置在醬端的空閒超時可能會與此有所幫助:http://saucelabs.com/docs/additional-config#idle-timeout

這所要求的功能(默認情況下以90秒爲單位)超時如果從你的硒腳本沒有收到任何命令。 儘管它無法直接檢測到網絡問題,但這可能會阻止您的分鐘被阻止的響應消耗。

您可能還會從Sauce Connect(https://saucelabs.com/docs/connect)中受益,這是一款免費的獨立Java實用程序,可用於測試防火牆資源。 Connect還會檢查丟棄的數據包,並會自動重新發送它們(直至某個點),以嘗試重新建立連接。