У нас есть файл функций, который проводит тест с конечной точкой, который отлично работает, когда эта конечная точка работает локально на нашем компьютере. Однако мы хотели бы запустить эти тесты по каратэ в среде CI, где мы используем URL-адрес нашей (развернутой) службы в среде разработки. Когда мы запускаем mvn clean install в нашем конвейере CI, мы получаем ошибку при запуске этой функции:
Код: Выделить всё
com.intuit.karate.exception.KarateException:
MyFeatureTest.feature:8 -
java.net.SocketException: Connection reset
pom.xml:
Код: Выделить всё
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.mycompany.app
our-karate-tests
1.0-SNAPSHOT
1.8
3.6.0
0.9.5
com.intuit.karate
karate-apache
${karate.version}
test
com.intuit.karate
karate-junit4
${karate.version}
test
src/test/java
**/*.java
org.apache.maven.plugins
maven-compiler-plugin
${maven.compiler.version}
UTF-8
${java.version}
${java.version}
-Werror
org.apache.maven.plugins
maven-surefire-plugin
2.22.2
Код: Выделить всё
import com.intuit.karate.KarateOptions;
import com.intuit.karate.junit4.Karate;
import com.junit.runner.RunWith;
@RunWith(Karate.class)
@KarateOptions(features="classpath:MyFeatureTest.feature")
public class MyFeatureTest {
}
Код: Выделить всё
Feature: test an endpoint
Background:
* url 'https://dev.myapplication.com/api/signin'
* configure ssl = true
Scenario: test request
Given request {"username":"john", "password":"doe"}
When method post
Then status 200
And match response == {resp:"success"}
Мы можем вызывать службу через Почтальон без проблем (как локально, так и развернутый сервис). Мы также пробовали выполнять разные методы, например get. Самое странное во всем этом то, что ошибка сброса соединения возникает в нашей среде CI, но когда мы запускаем эту функцию локально, мы получаем исключение org.apache.http.conn.ConnectTimeoutException: подключаемся к https://dev.myapplication. com:443 не удалось: время ожидания соединения.
У нас такое ощущение, что это связано с клиентом karate-apache, но мы также пытались использовать apache- Джерси. К сожалению, мы сталкиваемся с той же проблемой, когда используем клиент Jersey. Мы также подумали, что это может быть связано с SSL. Однако даже при использовании службы без SSL (и удалении конфигурации SSL из этой функции) возникает та же проблема. Мы пытались протестировать ответы не-https-сайтов, таких как web.archive.org, а также https-сайтов, таких как google.com, но тщетная попытка также была тщетной, когда мы просто тестировали запрос GET. Тем не менее, возникает та же проблема.
Подробнее здесь: https://stackoverflow.com/questions/606 ... n-features