【问题标题】:Selenium tests timeout in Saucelabs but are shown as passed in Jenkins. How to show the job as failed when tests timeout in Saucelabs ?Selenium 在 Saucelabs 中测试超时,但在 Jenkins 中显示为通过。当 Saucelabs 中的测试超时时,如何将作业显示为失败?
【发布时间】:2014-01-29 22:57:33
【问题描述】:

我通过在 Jenkins 中创建作业在 Saucelabs 上运行 Selenium 测试。由于网络问题或身份验证挑战,Saucelabs 上的一些测试超时。 Jenkins 中的作业结果显示为成功通过。如何在 Jenkins 工作中显示错误?有没有办法在测试超时时使工作失败?提前感谢您的帮助。

【问题讨论】:

    标签: selenium junit jenkins saucelabs


    【解决方案1】:

    如果您可以在控制台日志输出中搜索指示测试何时超时的字符串,您可以使用Text Finder plugin 来查找该字符串并使构建失败。

    【讨论】:

    • Jenkins 控制台输出没有任何可用于确定测试是否超时的字符串。如果 6 个测试正在运行并且第 4 个测试超时 Saucelabs 显示超时错误,但 Jenkins 通过 3 个测试显示作业成功通过 0 失败 0 跳过。
    【解决方案2】:

    如果您的测试在运行时失去与网格的连接,那么 Sauce 将超时(在 JSON 数据包中不活动 90 秒后),并且由于您的测试没有连接,因此您的测试无法知道它发生了。除非您在 Junit 或 TestNG 测试中设置超时,否则如果达到长时间超时,您可以确定它一定是失败,然后可能有一个 @AfterTest 步骤尝试使用标准 JSON /status 请求 ping 网格状态,如果它失败了,你可以抛出一个 Assert.fail 。我还没有尝试过,但它似乎可以工作。

    另外,您也许可以使用Saucerest 来查询测试状态并可能得到超时回复?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多