Rest Assured - 如果失败则重试请求

时间:2016-01-21 08:53:06

标签: java selenium-webdriver testng rest-assured

示例测试:

@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。我在考虑ifdo-while,但我知道这不是很聪明。有人可以建议一些解决方案吗?

换句话说 - 如果statusCode =!HTTP_OK

,我想重试整个测试(或只是.get)

1 个答案:

答案 0 :(得分:0)

如果您使用的是TestNG,那么您可以实现自己的retryAnalyzer: http://toolsqa.com/selenium-webdriver/retry-failed-tests-testng/

在其他框架的情况下,"不是很聪明"解决方案是您的答案,捕获异常并再次尝试,直到退出条件匹配。

不幸的是,RestAssured没有机制重试。