【问题标题】:How to run cucumber scenario multiple time without using Scenario Outline如何在不使用场景大纲的情况下多次运行黄瓜场景
【发布时间】:2017-01-19 12:36:09
【问题描述】:

在我的黄瓜 jvm 项目中,我想在不使用场景大纲的情况下使用相同的数据集(数据在 excel 中提供)执行我的场景 10 次。

谁能指导我如何做到这一点?

【问题讨论】:

  • 你用这个做什么行为?
  • 在我的 API 项目中,我发送 JSON 数据作为输入。现在我的 JSON 输入保持不变,除了 ID 字段不断变化(我使用随机数生成)。由于我的其余输入始终保持不变,我只想重复这个场景说 10 次。
  • 所以您的系统正在生成随机数?在这种情况下,您只需要运行两次,验证 2 个 id 是否不同。我认为你在工程上吃过头了。
  • 不,我的系统没有生成随机数。我的系统每次都需要 ID 字段是唯一的。除了 ID 字段之外,还有 200 多个字段,我需要将它们作为 API 的输入请求发送,这些字段会向我发送一些响应(大约 20 个字段)。就我而言,我想发送输入请求并检查输出是否符合预期。我需要为 10 个不同的输入执行相同的一组步骤
  • 如果您尝试使用excel来提供数据而不是示例表,您可以尝试qaf gherkin client,您可以在其中指定excel文件以提供测试数据Examples:{'datafile':'resources/testdata.xls'}

标签: java selenium cucumber bdd cucumber-jvm


【解决方案1】:

听起来您正在寻找的是场景中的 for 循环。我已经在几个地方看到过类似的问题,但你现在能做的最好的事情就是简单地设计你的功能,以便在后台定义你的初步步骤,然后你就有一个循环通过你的部分的场景大纲。

如果您可以使用不同的框架,我一直在从事一个名为 Kherkin 的项目,它允许您循环场景的特定部分以及常规 Gherkin 不允许您做的许多其他事情.这是一个如何仅循环一部分场景的示例: https://bitbucket.org/Muhatashim/zarif-kherkin/src/master/src/test/kotlin/org/bitbucket/muhatashim/kherkin/lang/script/IterationTest.kt

要了解有关 Kherkin 的更多信息:https://bitbucket.org/Muhatashim/zarif-kherkin/src/master/

【讨论】:

    【解决方案2】:

    首先Scenario Outline 设计用于输入数据发生变化的情况。所以这首先不适合你的情况。

    AFAIK 你有以下选择:

    在步骤内部设置逻辑。 意思是在您的步骤粘合代码中循环执行所需的操作。

    @Then("^Repetitive step$")
    public void repetitive_step(final String repetitions) throws Throwable {
    
    int reps = Integer.valueOf(repetitions);
    
        for(int i=0; i<reps; i++){
            // your step code
        }    
    }
    

    在功能文件本身中重复您的步骤。因此,如果这只是您想尝试且不关心美学的一次性场合,您可以根据需要将场景复制粘贴到功能文件中多次。

    【讨论】:

    • 这里我们重复一个步骤,但我想重复两个步骤。就像在“何时”步骤中,我将执行一些操作,在“那么”步骤中,我将验证结果。我想一个接一个地重复这组两个步骤(When, Then)。
    猜你喜欢
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多