如何在 Rest-Assured 中设置等待响应的时间?
How to setup time to wait for response in Rest-Assured?
回复需要很长时间。怎样才能安心等待响应时间?
过去我使用过 awaitility,它允许您在开始另一个调用之前等待服务的响应。
https://github.com/awaitility/awaitility.
您可以 return 提取响应并等待状态 code/body 到 return 一个值。
@Test
public void waitTest() throws Exception {
Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> this.getStatus() == 200)
}
public int getStatus() {
return given()
.accept(ContentType.JSON)
.get(url)
.then()
.extract()
.statusCode();
}
在此class你声明了最长时间
public interface Constants {
Long MAX_TIMEOUT = 3000l;
}
在此class你实现接口
public class BaseTest implements Constants {
@BeforeClass
public static void setup() {
ResponseSpecBuilder resBuilder = new ResponseSpecBuilder();
resBuilder.expectResponseTime(Matchers.lessThan(MAX_TIMEOUT));
RestAssured.responseSpecification = resBuilder.build();
}
终于可以使用服务员策略了
public class SimulationTest extends BaseTest {
@Test
public void checkStatus200() {
given()
.when()
.get()
.then()
.statusCode(200)
;
}
}
回复需要很长时间。怎样才能安心等待响应时间?
过去我使用过 awaitility,它允许您在开始另一个调用之前等待服务的响应。
https://github.com/awaitility/awaitility.
您可以 return 提取响应并等待状态 code/body 到 return 一个值。
@Test
public void waitTest() throws Exception {
Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> this.getStatus() == 200)
}
public int getStatus() {
return given()
.accept(ContentType.JSON)
.get(url)
.then()
.extract()
.statusCode();
}
在此class你声明了最长时间
public interface Constants {
Long MAX_TIMEOUT = 3000l;
}
在此class你实现接口
public class BaseTest implements Constants {
@BeforeClass
public static void setup() {
ResponseSpecBuilder resBuilder = new ResponseSpecBuilder();
resBuilder.expectResponseTime(Matchers.lessThan(MAX_TIMEOUT));
RestAssured.responseSpecification = resBuilder.build();
}
终于可以使用服务员策略了
public class SimulationTest extends BaseTest {
@Test
public void checkStatus200() {
given()
.when()
.get()
.then()
.statusCode(200)
;
}
}