如何在Selenium Grid中終止會話?我的問題是,如果我的測試失敗集線器仍保持會話進行此測試,我無法運行另一個測試(它運行但失敗,因爲無法獲得空閒節點,因爲它在集線器中註冊)。我找到了這個How to kill thread in a Selenium Grid node,並且有一個使用DELETE /session/:sessionId
的答案,但它對我不起作用。關於Selenium Grid或Extras的文檔非常純粹,也許有人有類似的問題,並知道如何解碼它?如何在Selenium Grid中終止會話(Extras)
回答
集線器從不拒絕新的會話請求,因爲插槽不可用。新會話結束於網格隊列中。
您需要查看您的代碼,以檢查爲什麼driver.quit()
不會始終被調用(無論測試失敗的原因如何)。
有時候,你的客戶可能會崩潰(對於例如,在你的測試用例運行JVM可能會崩潰,或者你可能在你的IDE殺死你的測試擊中stop button
。在這種情況下,你最終會產生孤立的會話。
但網格有機制,通過把它時,你可以指定到網格屬性清理起來也是如此。
硒電網特別是有意味着這些排序清理的三個參數。
-browserTimeout
以秒爲單位:瀏覽器會話在WebDriver命令運行時允許掛起的秒數(例如:driver.get(url))。如果在WebDriver命令仍在處理時達到超時,則會話將退出。最小值爲60.未指定,零或負值表示無限期等待。Default: 0
-cleanUpCycle
毫秒:指定轂將如何經常輪詢超時運行的代理(即掛起)線程。還必須指定timeout
選項。Default: 5000
(5秒)-timeout
,以秒爲-sessionTimeout
:指定超時服務器自動殺死一直沒有任何活動在過去的X秒會話之前。然後測試槽將被釋放以供另一測試使用。這通常用於處理客戶端崩潰。對於網格集線器/節點角色,還必須設置cleanUpCycle。Default: 1800
使用所有上述3個參數的組合,你可以配置你的節點自動關閉孤兒瀏覽器實例和會話。
本文檔在selenium uber jar本身內可用作命令行文檔。您可以參考this SO答案來了解如何獲取它並查看可用的其他選項。
在Grid'2維客頁面here上有一些與timeouts
相關的其他文檔。
欲瞭解更多信息,請參考我的意見在計算器後:Selenium driver instance persists if test is aborted on Jenkins
- 1. 如何在iTerm2中終止舊會話
- 2. Selenium代碼不會終止
- 3. GKSession - 終止會話
- 4. 如何使用tsql來終止會話
- 5. 在rails中,如何在給定會話標識的情況下終止會話?
- 6. 終止IIS上的會話
- 7. Tomcat會話意外終止
- 8. ASP.NET會話意外終止
- 9. ASP.NET會話突然終止
- 10. 如何在停止服務器時終止會話
- 11. 如何在Windows Phone 8中終止會話?
- 12. 如何在PHP中終止用戶會話?
- 13. 如何在JSF中終止會話作用域bean
- 14. Wcf如何在OperationContract中終止會話[isInitiating = true]
- 15. 如何在web.config中自動終止會話?
- 16. 如何在ASP.NET中登錄時終止用戶會話
- 17. Rails/Authlogic - UserSession.destroy不會終止會話
- 18. 使用.NET MVC3從另一個會話中終止會話
- 19. 從管理會話中終止ASP .NET用戶會話
- 20. Selenium-PHPUnit,Selenium Grid
- 21. Selenium Grid + JUnit + Jenkins - 如何
- 22. 如何在Windows關閉時終止PHP會話?
- 23. 使用Apache和Django終止會話
- 24. 以bash腳本終止Curl Telnet會話
- 25. 會話終止時的鏈接
- 26. 管理員終止用戶會話
- 27. Selenium Grid v.3.1.0測試 - 無法創建新的遠程會話
- 28. 命名管道終止會話
- 29. Selenium Grid:無法啓動Selenium會話:轉發新會話時發生錯誤空虛擬池設置
- 30. 鎖定後終止SSH會話
輪轂從未否認新的會話請求,因爲一個插槽不可用。新會話結束於網格隊列中。爲什麼你的測試沒有正確地關閉會話?你看過那部分?無論測試通過還是失敗(由於斷言失敗或由於異常),它們都應該始終調用'driver.quit()'來刪除會話。 –
你可能是對的。當我停止測試時,例如通過Intellij,關閉驅動程序的'tearDown'方法將不會運行,但即使停止使用Intellij測試,如何實現運行tearDown方法? – slovvic