t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f9b026378c0> #<Tag:0x00007f9b02637758> #<Tag:0x00007f9b026375c8>

Всем привет

Подскажите как лучше обрабатывать таймауты при вызове апишки через 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

Спасибо

Используй 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());

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

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

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

2 Симпатий