当前位置: 首页 > 知识库问答 >
问题:

要按顺序运行的场景

易雅畅
2023-03-14

我对Cumber框架没有什么顾虑:-1。我有一个功能文件(步骤相互依赖),我想按顺序运行所有场景,默认情况下它们是按随机顺序运行的。2.如何多次运行单个功能文件?

我贴上一些标签,试着跑,但没有运气。

@Given("Get abc Token")
    public void get_abc_Token(io.cucumber.datatable.DataTable dataTable) throws URISyntaxException {
        DataTable data=dataTable.transpose();
        String tkn= given()
                .formParam("parm1",data.column(0).get(1))
                .formParam("parm2", data.column(1).get(1))
                .formParam("parm3", data.column(2).get(1))      
        .when()
        .post(new URI(testurl)+"/abcapi")
        .asString();

        jp=new JsonPath(tkn);

        Token=jp.getString("access_token");

        if (Token==null) {
            Assert.assertTrue(false,"Token is NULL");           
        }else {


        }       

       }


@Given("Get above token")
    public void get_abovetoken(io.cucumber.datatable.DataTable dataTable) throws URISyntaxException {

    System.out.println("Token is " +Token);



    }
}

因此,在上面的步骤中,我从一个步骤中获取令牌,并尝试在另一个步骤中打印令牌,但我得到的是null,而不是实际值,因为我的步骤是随机的。请注意,我正在通过testng运行TestRunner。xml文件。

共有1个答案

凌运恒
2023-03-14

Cumber和测试工具通常被设计为作为一个完全独立的东西运行每个测试/场景。将场景链接在一起是一种可怕的反模式,不要这样做。

相反,学会正确地编写场景。场景和特性文件中不应该有任何编程。编程需要向下推进到步骤定义中。

任何场景,无论多么复杂,如果你真的想,都可以用3步写出来。给定的可以设置任意数量的状态。您的处理您正在做的事情时,您的然后可以检查任意数量的条件。

为此,您可以将所有细节从场景中推到步骤定义中。通过让步骤定义调用完成所有工作的帮助器方法,您可以进一步改进这一点。

 类似资料:
  • 假设我有 我可以运行什么NPM命令来让所有这些脚本按顺序启动。当我使用前/后修复时,它们会顺序启动,但不会等到父脚本完成后才执行。我假设唯一的解决方案是这样的:当在async.series助手函数中触发shell命令时,我如何让Gulp任务依次触发??我知道这可以用古普来完成,但我现在想坚持使用NPM来探索它的能力。感谢任何帮助!

  • 问题内容: 我有3个线程第一打印A第二打印B第三打印C 我想按顺序打印ABCABCABC,依此类推..... 因此,我在下面编写了程序,但无法实现相同的目的。我知道一个问题,当时状态为1时,例如B1和C1线程正在等待,而当我做notifyAll()时,两个等待线程都被唤醒,并且取决于CPU分配,它可能会打印B或C。 在这种情况下,我只希望在A之后打印B。 我需要做什么修改。 问题答案: 将那些IF

  • 问题内容: 我正在使用Node.js运行服务器,并且需要从正在运行的另一台服务器()请求数据。我需要向数据服务器发出许多请求(〜200)并收集数据(响应大小从〜20Kb到〜20Mb不等)。每个请求都是独立的,我想将响应保存为以下形式的一个巨大数组: 请注意,项目的顺序并不重要,理想情况下,它们应该以数据可用的顺序填充数组。 现在,当运行该程序时,它将显示: 现在,由于文件的大小如此可变,我期望它可

  • 问题内容: 我正在尝试在我正在处理的Python项目中使用线程,但是线程似乎没有按照我的代码的预期运行。似乎所有线程都按顺序运行(即,线程2在线程1结束后开始,它们不是同时启动)。我编写了一个简单的脚本来对此进行测试,并且该脚本也按顺序运行线程。 这是我从运行它得到的输出: 循环的迭代次数更多时,观察到相同的行为。 我尝试搜索网络和较早的SO答案,但找不到任何有帮助的方法。有人可以指出这段代码有什

  • 如何按特定顺序运行quarkus测试?通常我们有@InSequence注释(来自arquillian IIRC),我们可以实现这一点。 但是我没有找到任何类似的Quarkus在"org.junit.jupiter.api"软件包提供Quarkus-朱尼5。 它将以一个替代的顺序运行,我试图使用org.junit.jupiter.api.顺序与@Testmetodorder(方法命令。nnotati

  • 我正在使用pact-jvm提供程序Spring。我有两个不同的pact(.json)文件,比如(order.json和irs.json),我需要按顺序运行它们(order后面是irs),但是根据字母顺序选择测试类,irs首先运行,order其次运行。是否有方法调用、执行特定的测试类提供程序状态或定义测试类执行顺序?