Res Assured断言错误处理



我有一个断言值的API测试。目前,它从excel中读取行,然后在正常的for循环中循环。如果值匹配,这将非常有效。

但是,如果断言失败,测试将以stacktrace AssertionError结束即使一个断言失败,是否有方法继续测试?

基本结构如下:

<code>
try {
for (int i = 1; i < 10; i++) {
//Get Excel Data
String progress = sheet.getRow(i).getCell(1).toString();
//Excel Assert Values
String valueToAssert = sheet.getRow(i).getCell(29).toString();
baseURI = "url";
Response response =
given()
//.filter(new AllureRestAssured())
.body(String.valueOf(writer))
.when()
.post()
.then()
.assertThat()
.statusCode(200)
.and()
.body("value", equalTo(valueToAssert))
}
} catch (Exception e) {
e.printStackTrace();
}catch (AssertionError k){
k.printStackTrace();
}
}


</code>

尽量不要在测试中使用for循环,因为这会导致出现问题。

相反,使用参数化测试。

  • 对于Junit 5:baeldung.com/parameterized-tests-Junit-5
  • 对于Junit 4:mkyong.com/unittest/Junit-4-教程-6-参数化测试

使用参数化测试将创建多个可能单独失败的测试。

最新更新