放心 - 如果失败重试请求

Mic*_*hal 5 java testng rest-assured selenium-webdriver

示例测试:

@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");
}
Run Code Online (Sandbox Code Playgroud)

事情是有时来自服务的响应等于 500 错误。这是因为应用程序错误并且是应用程序错误,所以我想添加 temp。.get如果服务返回 500 ,则重试的解决方法。我正在考虑ifdo-while但我知道这不是很聪明的方法。任何人都可以建议一些解决方案?

换句话说 - 如果 statusCode=!HTTP_OK,我想重试整个测试(或只是 .get)

小智 0

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

对于其他框架,“不是很聪明”的解决方案就是您的答案,捕获异常并重试,直到退出标准匹配。

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