如何在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