示例测试:
@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错误。这是因为应用程序错误和它的应用程序错误所以我想添加temp。如果服务返回500,则尝试重试.get
。我在考虑if
或do-while
,但我知道这不是很聪明。有人可以建议一些解决方案吗?
换句话说 - 如果statusCode =!HTTP_OK
,我想重试整个测试(或只是.get)答案 0 :(得分:0)
如果您使用的是TestNG,那么您可以实现自己的retryAnalyzer: http://toolsqa.com/selenium-webdriver/retry-failed-tests-testng/
在其他框架的情况下,"不是很聪明"解决方案是您的答案,捕获异常并再次尝试,直到退出条件匹配。
不幸的是,RestAssured没有机制重试。