[英]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.