2011-03-07 100 views
6

我目前正在使用每小時運行一次的硒RC進行自動化測試。一切都在大部分時間順利運行,但有時候Firefox會崩潰或者硒RC會掛起,並且由於這兩個問題,測試不會繼續並停止。有誰知道我可以如何使firefox.exe或java.exe(硒實例)在它們崩潰或掛起時被殺死,因此測試可以恢復。我看到的問題是在Firefox或硒掛起時自動檢測並通過腳本自動將其終止。如何處理硒崩潰

謝謝!

回答

1

不知道我對你最終的答案,但我可以提供一些建議:

  • 硒會有超時處理與Firefox凍結。你應該仔細檢查以確保設置正確並且正常工作。
  • 不管運行你的硒(如巡航控制或團隊城市)應該有一個超時,可以殺死硒服務器。 (不是我)
  • 我真的會鼓勵你弄清楚這個根本原因。硒可以感到沮喪和片狀,但在挖掘之後,我總是發現這是一個可以診斷的問題,可以修復(如this)。

(SE推動我們可怕的極端:。實際上,我們寫了一個SSH工作在TeamCity的是登錄到Windows機器並重新啓動服務器硒有觸發最終,我們沒有使用它)

2

理想,您的每個測試都將從乾淨的狀態開始,沒有運行現有的Firefox或IE進程。在你的測試tearDown()方法中,你應該關閉/退出你的瀏覽器。即使採用這種方法,有時候,流浪的流程仍然會流行起來。如果您通過Java RC在Windows上運行Selenium服務器,將此命令放入測試的startUp()方法可以幫助確保沒有瀏覽器/實例正在運行:

Runtime.getRuntime().exec("TASKKILL /F /IM Firefox.exe"); 
Runtime.getRuntime().exec("TASKKILL /F /IM iexplore.exe"); 

至於檢測到它們何時崩潰,Firefox會顯示一個警告對話框,指示崩潰。您可以通過外部工具(如AutoIT)以編程方式與此窗口進行交互,如果需要,可以自動按下此對話框上的「確定」按鈕。我發現構建一個在後臺不斷運行的外部AutoIT腳本來處理彈出窗口,崩潰,警告等非常有幫助。