[英]Cucumber Scenarios to be run in Sequential Order
我对黄瓜框架的关注很少:1.我只有一个Feature文件(步骤彼此依赖),我想按顺序运行所有方案,默认情况下它们以随机顺序运行。 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.xml文件运行TestRunner。
通常,黄瓜和测试工具被设计为作为完全独立的事物来运行每个测试/方案。 将场景链接在一起是一个糟糕的反模式,不要这么做。
相反,要学习正确编写方案。 场景和功能文件中应该根本没有编程。 编程需要下推到步骤定义中。
如果您真的想要,任何场景,无论多么复杂,都可以分三步编写。 您的Given
可以设置任何数量的状态。 您的When
处理您的工作, Then
可以检查任何数量的条件。
您可以通过将所有详细信息从场景中移出并进入步骤定义来完成此操作。 您可以通过使步骤定义调用完成所有工作的助手方法来进一步改善这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.