微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Karate-Chrome 运行测试连接被拒绝异常

如何解决使用 Karate-Chrome 运行测试连接被拒绝异常

基于 Karate UI 的测试使用 karate-chrome 在本地成功运行(步骤 here),它启动了一个带有公开端口的容器。

现在,我正在尝试在 CI 中 karate-chrome 容器中运行测试。我已经用 KaraTE_SOCAT_START=true 启动了 karate-chrome 容器,然后执行了 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 (DIND) 进程运行测试。很高兴知道其他人是否有更好的解决方案。

,

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

我建议您开始查看 1.0 release,我们有一个参考测试,它使用 Docker 容器的方式略有不同,没有使用 driverTarget。您可以在此处找到详细信息:https://stackoverflow.com/a/66005331/143475

如果您在完成这项工作后,将您的解决方案作为另一个答案发布在这里,以便帮助他人并帮助我们在需要时改进文档,那就太好了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。