【问题标题】:Timeout setup for Serenity BDD or Cucumber BDD framework?Serenity BDD 或 Cucumber BDD 框架的超时设置?
【发布时间】:2016-02-12 01:01:06
【问题描述】:

我正在使用 Cucumber 和 Serenity 框架编写一些 BDD 自动化测试。而且我需要在我的 BDD 测试中使用一些超时机制,这样如果 Cucumber 场景或 Serenity 中的步骤花费的时间太长,它将超时并且测试将失败。

我在下面的链接中找到了一些信息: https://groups.google.com/forum/#!topic/cukes/QaPvVMnqDvE

所以对于 Cucumber,似乎步骤定义中的以下设置应该可以完成工作:

@When(value="^I request web authentication$", timeout=1000) 
public myfunc(){
}

对于Serenity,我没有找到任何超时设置,但我想只是我还没有找到它。

但是,当我尝试 Cucumber 的 timeout=xxx 时,它似乎不起作用。即使 myfunc() 在我的测试中挂了很长时间,测试并没有停止,只是挂了。

谁知道这个 timeout=xxx 是否有额外的设置可以工作?

Serenity 是否也有自己的类似超时机制可供使用?

最后我正在使用 maven clean install 来驱动测试,也许我缺少一些 maven 设置来让它工作?

任何提示将不胜感激。

【问题讨论】:

    标签: maven cucumber cucumber-jvm serenity-bdd cucumber-serenity


    【解决方案1】:

    Serenity 的超时可以通过以下属性处理:

    1. webdriver.timeouts.implicitlywait
    2. webdriver.wait.for.timeout
    3. serenity.timeout

    您还可以在

    中获取有关 Serenity 超时的更多信息

    http://thucydides.info/docs/serenity-staging/#_working_with_timeouts https://github.com/serenity-bdd/serenity-documentation/blob/master/src/asciidoc/system-props.adoc

    【讨论】:

      【解决方案2】:

      与其直接使用 Maven install 来驱动测试,不如使用 Junit 或 TestNG 来完成。 如果你使用 Junit,超时可以这样做:

      @Test(timeout = 20)
      public void try() {
          while(true);
      }
      

      TestNG 的工作方式也几乎相同:

      @Test(timeOut = 10000)
      public void try() {
          while(true);
      }
      

      Cucumber 具有与 JUnit 和 TestNG 兼容的可用依赖项。


      您尝试的 Cucumber 超时仅在以下情况下有效:

      • 正在使用的线程处于休眠状态的毫秒数 在您指定的超时时间中显示。为了克服这个你可以 为单独的测试创建一个单独的线程,以便您的线程(对于挂起的测试) 睡觉。但这可能不是您真正想要的。
      • 线程变为不可中断,然后它将在之后停止 指定超时的两倍。

      正如@aslakhellesoy 提到的@here

      如果线程不可中断,超时将停止它们。 …

      如果线程没有响应中断(),我们将尝试停止()它 在两次指定的超时之后。

      这使用了已弃用的 Thread.stop() 方法,但用于测试工具 像黄瓜应该没问题。

      参考 #343。

      所以你必须将超时时间减少一半。

      【讨论】:

        【解决方案3】:

        或者,如果您需要在每一步之后进行延迟,您可以使用该属性:

        serenity.step.delay={以毫秒为单位的时间}

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多