示例测试:
@Test
public void shouldGetRoutesList() {
Response response =
given()
.headers("RequestId", 10)
.headers("Authorization", accessToken)
.contentType(ContentType.JSON).
expect()
.statusCode(HttpURLConnection.HTTP_OK).
when()
.get("address");
String responseBody = response.getBody().asString();
System.out.println(responseBody);
logger.info("Log message");
}
问题是,有时从服务响应等于500错误.这是因为应用程序错误,它的应用程序故障,所以我想添加临时.变通办法重试.get
,如果服务返回500.我在想if
或do-while
,但我知道这不是很聪明的方法.有人可以建议一些解决方案?
换句话说-如果statusCode=!HTTP_OK,我想重试整个测试(或仅.get)
2条答案
按热度按时间xghobddn1#
如果你正在使用TestNG,那么你可以实现你自己的retryAnalyzer:http://toolsqa.com/selenium-webdriver/retry-failed-tests-testng/
对于其他框架,“不太聪明”的解决方案就是你的答案,捕获异常并重试,直到退出条件匹配。
不幸的是,RestAssured没有重试机制。
pw136qt22#
您还可以使用SpringRetry库和RetryTemplate类。