2017-10-23 40 views
7

Używam RestAssured 2.8.0 i próbuję ustawić własny limit czasu (dla limitu czasu bramki), , więc jeśli nie otrzymam odpowiedzi po X milisekundach, które chcę przerwać.W programie REST zapewnione, w jaki sposób ustawić limit czasu?

Próbowałem:

public static ValidatableResponse postWithConnectionConfig(String url, String body, RequestSpecification requestSpecification, ResponseSpecification responseSpecification) { 
    ConnectionConfig.CloseIdleConnectionConfig closeIdleConnectionConfig = new ConnectionConfig.CloseIdleConnectionConfig(1L, TimeUnit.MILLISECONDS); 
    ConnectionConfig connectionConfig = new ConnectionConfig(closeIdleConnectionConfig); 
    RestAssuredConfig restAssuredConfig = new RestAssuredConfig().connectionConfig(connectionConfig); 


    return given().specification(requestSpecification) 
      .body(body) 
      .config(restAssuredConfig) 
      .post(url) 
      .then() 
      .specification(responseSpecification); 

} 

lub

ConnectionConfig connectionConfig = new ConnectionConfig() 
      .closeIdleConnectionsAfterEachResponseAfter(10L, TimeUnit.MILLISECONDS); 
RestAssuredConfig restAssuredConfig = new RestAssuredConfig().connectionConfig(connectionConfig); 

Próbowałem też dodać

.queryParam("SO_TIMEOUT", 10) 

lub

.queryParam("CONNECTION_MANAGER_TIMEOUT", 10) 

nic nie działa. To nie przerwać moje zapytanie

Odpowiedz

7

limity czasu można skonfigurować poprzez ustawienie parametrów klienta HTTP:

RestAssuredConfig config = RestAssured.config() 
     .httpClient(HttpClientConfig.httpClientConfig() 
       .setParam(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000) 
       .setParam(CoreConnectionPNames.SO_TIMEOUT, 1000)); 

given().config(config).post("http://localhost:8884"); 
+0

dzięki! pracował dla mnie jak urok! –