如何解决使用 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 举报,一经查实,本站将立刻删除。