【问题标题】:Parallel execution with Serenity and JBehave?使用 Serenity 和 JBehave 并行执行?
【发布时间】:2019-03-14 09:38:43
【问题描述】:

如何执行并行 Serenity + JBehave + Maven 测试? 我尝试了设置: serenity.batch.size = 3 serenity.batch.count = 2

但测试仍未并行执行。

我的 AcceptanceTestSute:

public class AcceptanceTestSuite extends SerenityStories {

    private static final String STORY_FILE_NAME = "story.file.name";

    public AcceptanceTestSuite() {
        super();
        Optional.ofNullable(System.getProperty(STORY_FILE_NAME)).ifPresent(this::findStoriesCalled);
        configuration().useParameterControls(new ParameterControls().useDelimiterNamedParameters(true));
        configuration().usePendingStepStrategy(new FailingUponPendingStep());
    }
}

【问题讨论】:

  • 请求教程是题外话。请更改您的问题以更具体。
  • 我想到了如何使用 Serenity + JBehave 设置并行执行的任何示例。我找到了一些示例,但其中大部分是针对 Serenity + Junit 的。
  • 那么我们需要关闭这个问题,因为它离题了。
  • 我编辑了问题
  • 你在使用页面对象吗?您的页面对象元素和方法是否被定义为静态的?您的问题可能与 JBehave 或 Serenity 无关。并行测试本身就是一个复杂的主题。

标签: maven jbehave serenity-bdd


【解决方案1】:

批处理大小和批处理计数参数用于在多台机器上运行批处理,而不是用于在单台机器上并行运行测试,并且在任何情况下都不适用于 JBehave。最好的策略是为每个故事文件创建一个单独的运行器类,并使用 Maven 或 Gradle 并行运行运行器类。

【讨论】:

  • 感谢约翰的回复。我们正在开始新项目,我正在考虑使用 serenity 框架。我想知道,如果我选择 Cucumber 而不是 JBehave,会更容易设置并行执行吗?
  • 只有在 Cucumber 更容易与 TestNG 交互的意义上,它才会更容易。 JBehave 可能,但我只在 JUnit 中使用过它。 TestNG 让编写并行测试变得更加容易。
【解决方案2】:

我设法按照 John Smart 的建议,使用单独的跑步者课程来做到这一点。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    相关资源
    最近更新 更多