У меня есть следующий тест:
Feature: News API
Background:
* url baseUrl
Scenario: get news index
Given path "/"
And retry until responseStatus == 200
When method get
Then status 200
And match response contains "News service up and running"
и следующий karate-config. js
function fn() {
// get java system property 'karate.env'
var env = karate.env;
karate.log('karate.env system property was:', env);
var config = {
baseUrl: 'http://localhost:8080',
};
karate.configure('retry', {count: 5, interval: 6000});
karate.configure('connectTimeout', 5000);
karate.configure('readTimeout', 5000);
return config;
}
и следующая ошибка в консоли после выполнения тестов с maven -failsafe-plugin:
...
[INFO] Running newsservice.NewsServiceIT
[main] INFO o.a.http.impl.execchain.RetryExec - I/O exception (org.apache.http.NoHttpResponseException) caught when processing request to {}->http://localhost:8080: The target server failed to respond
[main] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://localhost:8080
[main] INFO o.a.http.impl.execchain.RetryExec - I/O exception (org.apache.http.NoHttpResponseException) caught when processing request to {}->http://localhost:8080: The target server failed to respond
[main] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://localhost:8080
[main] INFO o.a.http.impl.execchain.RetryExec - I/O exception (org.apache.http.NoHttpResponseException) caught when processing request to {}->http://localhost:8080: The target server failed to respond
[main] INFO o.a.http.impl.execchain.RetryExec - Retrying request to {}->http://localhost:8080
[main] ERROR com.intuit.karate - org.apache.http.NoHttpResponseException: localhost:8080 failed to respond, http call failed after 2 milliseconds for URL: http://localhost:8080/
[main] ERROR com.intuit.karate - http request failed:
org.apache.http.NoHttpResponseException: localhost:8080 failed to respond
---------------------------------------------------------
feature: classpath:newsservice/news/news-index.feature
scenarios: 1 | passed: 0 | failed: 1 | time: 0.7678
---------------------------------------------------------
HTML report: (paste into browser to view) | Karate version: 0.9.5.RC5
...
Перед началом тестов я загружаю свое приложение Spring Boot, и это занимает некоторое время (~ 5-7 секунд), и я знаю, что тест не прошел, потому что Sprint Загрузочное приложение еще не запущено.
Именно поэтому я попытался использовать эту функцию retry until
Каратэ, чтобы убедиться, что она повторяется через определенные промежутки времени.
Но, похоже, retry
config не соблюдается в соответствии с выводом консоли. Кажется, что он всегда пытается только 3 раза ...
Я также пытался установить конфигурацию retry
в самом тестовом файле, как в документах по каратэ:
* configure retry = { count: 10, interval: 5000 }
но это тоже не сработало.
Может быть, у вас есть подсказка, почему оно не работает, или я все еще что-то пропускаю?
Спасибо за поддержку!