使用空手道- chrome运行测试(连接拒绝异常)



基于空手道ui的测试使用空手道镀铬(步骤在这里)在本地成功运行,该镀铬启动具有暴露端口的容器。

现在,我正试图在中运行测试CI中的空手道铬容器。我已经用KARATE_SOCAT_START=true启动了空手道铬容器,然后执行java -jar(独立jar)命令来运行测试。非基于UI的测试通过,但UI测试抛出以下异常:

ERROR com.intuit.karate - http request failed: 
15:26:09 DOCKER: org.apache.http.conn.HttpHostConnectException: Connect to localhost:9222 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)

注意没有配置带docker的driverTarget。只有以下驱动程序的配置:

* configure driver = { type: 'chrome', start: false, showDriverLog: true, port:9222 ,pollAttempts: 5}

是否有可能使它以这种方式工作,或者应该设置一个自定义的docker映像?

我无法直接在karate-chrome上运行基于ui的测试。因此,我最终创建了一个新的docker映像(docker-openjdk8)来运行带有driverTarget:

的测试。
* configure driverTarget = { docker: 'ptrthomas/karate-chrome', showDriverLog: true}

这基本上是在Docker-in-Docker (dd)进程中运行测试。如果有人有更好的解决办法,我很乐意知道。

我知道这个问题很老了,但是今天我偶然发现了同样的问题,我必须为自动化配置空手道UI测试。我找到的解决方案是配置chrome驱动程序如下:

* configure driver = { type: 'chrome', showDriverLog: true, port: 9222, pollAttempts: 5, addOptions:['--no-sandbox'], headless: true }

然后空手道独立jar就可以启动浏览器了,所有的测试都通过了。

希望这对你有帮助!

对不起,您的设置不清楚。但是使用configure driverTarget = { docker: 'ptrthomas/karate-chrome' }意味着Docker应该安装在你运行测试的机器上。

我建议你开始看1.0版本,我们有一个参考测试,它使用Docker容器有点不同,没有使用driverTarget。您可以在这里找到详细信息:https://stackoverflow.com/a/66005331/143475

如果在你得到这个工作之后,你把你的解决方案作为另一个答案张贴在这里,这样它就可以帮助其他人,并帮助我们在需要时改进文档,那就太好了。

最新更新