2011-03-07 75 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脚本来处理弹出窗口,崩溃,警告等非常有帮助。