【问题标题】:Changing default path for Chrome executable for karate-chrome更改 karate-chrome 的 Chrome 可执行文件的默认路径
【发布时间】:2021-11-27 06:12:54
【问题描述】:

我正在使用空手道框架进行 API 测试。作为 CI 工作的一部分,我们会在测试执行结束时发送一封电子邮件,列出测试结果的摘要。需要包含来自“overview-feature.html”文件的测试执行计数的截图。

我是通过 TestRunner.java 文件完成的 - 使用 Chrome.start() 启动 Chrome,然后使用它截取屏幕截图。这一切都在 Windows 本地运行良好。 但是,在作为 Unix 机器的 CI 服务器上执行时,chrome 可执行文件不在默认位置(usr/bin/google-chrome)中,因此与 localhost 的连接失败。

有没有办法可以更改 chrome 可执行文件的默认位置?

PS:抱歉,如果这太琐碎了,无法问。

【问题讨论】:

    标签: karate


    【解决方案1】:

    是的,CI 上的 Chrome 很难正确安装,请参阅:https://stackoverflow.com/a/62325328/143475 - 请注意,CI 框通常是“无头”的,甚至可能没有安装浏览器。

    我认为对您来说最好的方法是将 HTML 压缩并发送。但我真的认为你需要与一些 CI 专家合作,因为报告生成和电子邮件业务通常由 Jenkins 之类的东西完成。你所做的肯定不是正常的或最佳实践。

    如果您真的想要,有一个空手道 Docker 容器可以为您提供适当的 Chrome 实例 (see docs),但这对于您的需要来说太过分了。

    编辑:Chrome Java API 允许自定义可执行路径,这在文档中:https://github.com/intuit/karate/tree/master/karate-core#chrome-java-api

    应该是这样的:

    Chrome.start("/opt/blah/chrome");
    

    【讨论】:

    • 感谢彼得的及时回复。是的,docker 确实是一个矫枉过正的工具,因为我需要浏览器来截屏。现在,我已经通过 Jenkins 将 html 和其他工件作为压缩文件发送。通过 jenkins 发送的电子邮件通过自定义 html 电子邮件模板进行路由。此外,利益相关者倾向于忽略 zip 文件中的无数文件,因此考虑在电子邮件正文中包含屏幕截图以使其更加可见。所以想知道是否可能或已经有一项条款来更改 Chrome 可执行文件的默认位置。再次感谢
    • @LeoP 我们可以在下一个版本中尝试提供一个“精简”版本的 HTML 报告,该报告易于附加到电子邮件中。但请注意,您可以更改Chrome.start() 查找可执行文件的位置,请参阅我对答案的编辑
    猜你喜欢
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多