Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Обработка таймаутов при вызове апи в тестах

api
rest-assured
java
Теги: #<Tag:0x00007f7b63d1a570> #<Tag:0x00007f7b63d1a430> #<Tag:0x00007f7b63d1a2f0>

#1

Всем привет

Подскажите как лучше обрабатывать таймауты при вызове апишки через restassured (абортить вызов, если не получаем респонс n секунд).

Пытаюсь конфигурировать при вызове метода:
.config(config().asyncConfig(withTimeout(1000, TimeUnit.MILLISECONDS)))

в результате получаю ошибку типов:
incompatible types: com.jayway.restassured.module.mockmvc.config.RestAssuredMockMvcConfig cannot be converted to com.jayway.restassured.config.RestAssuredConfig

Спасибо


(S Romankov) #2

Используй httpclient вот пример
Тут выставлено три таймаута смотри какой тебе нужен или оставь все

int timeout = 5;
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(timeout * 1000)
.setConnectionRequestTimeout(timeout * 1000)
.setSocketTimeout(timeout * 1000).build();
CloseableHttpClient client =
HttpClientBuilder.create().setDefaultRequestConfig(config).build();

HttpGet getMethod = new HttpGet(“http://host:8080/path”);
HttpResponse response = httpClient.execute(getMethod);
System.out.println(
"HTTP Status of response: " + response.getStatusLine().getStatusCode());


#3

Спасибо, но хочется решить проблему в рамках текущей реализации

Response r = rest().given()
                .headers()
                .config(newConfig().sslConfig(SSLConfig.sslConfig().allowAllHostnames()))
                .expect().statusCode(200)
                .when()
                .post(url);

(Nikita) #4

Смотри в сторону https://github.com/awaitility/awaitility