业力与Chromeheadless在Jenkins CI上与Debian一起



我们正在使用业力&茉莉花用于我们的前端node.js应用。在本地,只需替换字段

浏览器:['phantomjs'],

浏览器:['Chromeheadless'],

并在 package.json 中添加条目:

" karma-chrome-launcher":" X.Y.Z",

然后,NPM构建将采用本地安装的Chrome浏览器实例来运行茉莉测试。这正常工作。

在我们的Jenkins Build Server(在Debian Jessie上运行(上,没有安装Chrome,因此无法执行测试。

现在的问题:

  • 是否有一个用于Chrome 的 npm软件包,我可以安装它,以便我不必直接在Debian机器上安装它?(类似于 phantomjs-prebuilt ,在运行实际测试用例之前安装当前的phantomjs实例(

update :是的,有NPM软件包,请参阅:https://github.com/googlechrome/puppeteer。这将根据当前的构建计算机获取镀铬版本。因此,必须添加新条目 package.json 文件(或通过NPM安装安装puppeteer -d安装(:

" Puppeteer":" X.Y.Z",

和karma.conf:

process.env.CHROME_BIN = require('puppeteer').executablePath();
browsers: ['HeadlessChrome'],
        customLaunchers: {
            HeadlessChrome: {
                base: 'ChromeHeadless',
                flags: ['--no-sandbox']
            }
        },

请注意,有时必须安装丢失的依赖项。请参阅:https://github.com/googlechrome/puppeteer/blob/master/master/docs/troubleshooting.md

有一个更好的方法可以做到这一点,而不是捆绑到您到处的铬。您可以设置环境VAR来告诉Puppeteer安装或不安装Chromium。因此,在本地,继续安装铬,但在CI服务器上设置了ENV变量以不安装Chromium。

然后,您可以获取无浏览器映像并为CI服务器Chrome运行该图像。这样做的原因要好得多,是由于您需要在服务器上安装的依赖量,才能使Chromium工作。使用Docker图像是更好的方法。

请参阅此处的文档:https://docs.browserless.io/docs/docker-quickstart.html

请参阅此问题中的答案!对于如何使用Selenium Chrome Image

来完成此操作的业力配置

最新更新