如何在 jenkins (linux) 实例上放置和使用无头 chrome 二进制文件

kri*_*han 5 npm jenkins selenium-chromedriver protractor google-chrome-headless

实际上,我正在为缺乏关于如何进行的大局而苦苦挣扎,情况如下:

我通过在 Windows 环境中的 chrome 选项中提供二进制位置,使用 Chrome 60(测试版)二进制文件无头运行量角器测试套件。

我想将它移植到可用的 CI CD Jenkins 实例 (linux) 并在那里无头运行。我可以想到两种方法:

方法一:

在 jenkins 中安装 chrome 插件,这样 chrome 就可以由 chrome driver < webdriver modules 驱动了。这样我就可以使用 jenkins 工作,如下所示:

npm install
Run Code Online (Sandbox Code Playgroud)

npm run start (从脚本,运行 webdriver-manager start )

npm run update (从脚本,运行 webdriver-manager update )

npm run test (从脚本,运行量角器 protactor.conf.js )

方法 2:像其他 npm 模块一样将 chrome 作为模块安装 .then

npm install
Run Code Online (Sandbox Code Playgroud)

npm run start (从脚本,运行 webdriver-manager start )

npm run update (从脚本,运行 webdriver-manager update )

npm run test (从脚本,运行量角器 protactor.conf.js )

我已经研究过 simple-headless-chrome 、 headless-chromium 、 chrome-runner npm modules ,但无法理解这些将如何工作。

我的理解是以某种方式在 node_modules 中有 chrome 二进制文件,并在 chrome 选项中提供 chrome 二进制文件的路径,以便 chrome 驱动程序可以找到它。

任何人都可以启发我一点关于更大的图景以及事情将如何锻炼第二种方法。因为我不想在 jenkins 服务器上安装 chrome 插件并希望保持我的设置独立。(nodejs 和 npm,java 等可用在詹金斯)

lui*_*ida 1

关于“通过在 Windows 环境中的 chrome 选项中提供二进制位置来使用 Chrome 60(测试版)二进制文件。”,您实际上并不需要这样做,Protractor 为您提供了一种指定标签来运行 chrome 二进制文件的方法:

https://github.com/angular/protractor/blob/master/docs/browser-setup.md#using-headless-chrome

我不认为你有一个节点模块来安装 chrome,或者至少没有像 google chrome 本身那样可靠的东西,所以我所做的就是在运行 jenkins 从属的 ubuntu 服务器上安装 google chrome,现在你有一个google-chrome二进制文件,您可以使用--headless.

以前我的 jenkins 从机运行在 CentOS 上,但我在上面设置 chrome 非常困难,所以改为 ubuntu。