运行 来自 GIT 的 selenium 测试,在远程 Selenium 网格上使用 Jenkins
Running selenium test from GIT with Jenkins on remote Selenium grid
我正在尝试 运行 来自 git 的 selenium 测试,并在 docker 的 selenium 网格上使用 Jenkins 作业。
作业应该获取 .js,它正在测试和连接到网格。该文件应该在 jenkins 中使用 build 执行。由于我将 nodeJS 与 selenium 一起使用,因此我需要 Jenkins 来获取所有请求的 npm 包。
在 Jenkins 中,我下载了 nodeJS 插件,在 Global Tool Configuration
中,我在 Global npm packages to install
列中填写了 selenium-webdriver@4.1.2
(我选择的 nodeJS 版本是 18.1.0)
作业成功获得 git 回购。在 Build
我有简单的命令 node login.js
.
不幸的是,当我尝试构建该作业时,我仍然得到 MODULE NOT FOUND
的 selenium-webdriver。
在构建日志中有不同的模块错误,因为我试图将 node_modules/selenium-wedriver
直接添加到 repo。但我想这不是正确的方法。
谁能给我指出正确的方向?
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sele-login
The recommended git tool is: NONE
using credential 34b86306-efa8-432e-92fb-63b586339585
> git rev-parse --resolve-git-dir /var/jenkins_home/workspace/sele-login/.git # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url git@github.com:MrWolfcan/sele-test.git # timeout=10
Fetching upstream changes from git@github.com:MrWolfcan/sele-test.git
> git --version # timeout=10
> git --version # 'git version 2.30.2'
using GIT_SSH to set credentials test2
> git fetch --tags --force --progress -- git@github.com:MrWolfcan/sele-test.git +refs/heads/*:refs/remotes/origin/* # timeout=10
Seen branch in repository origin/main
Seen 1 remote branch
> git show-ref --tags -d # timeout=10
Checking out Revision 4cb9f780e70818120c1128aad85b18c1f71ad4dd (origin/main)
> git config core.sparsecheckout # timeout=10
> git checkout -f 4cb9f780e70818120c1128aad85b18c1f71ad4dd # timeout=10
Commit message: "Add files via upload"
> git rev-list --no-walk 37e8fc5193006e5820cc66209c10a8f799478786 # timeout=10
[sele-login] $ /bin/sh -xe /tmp/jenkins11143974131067136179.sh
+ node login.js
node:internal/modules/cjs/loader:942
throw err;
^
Error: Cannot find module 'ws'
Require stack:
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/http.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/http/index.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/index.js
- /var/jenkins_home/workspace/sele-login/login.js
at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
at Module._load (node:internal/modules/cjs/loader:780:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js:33:19)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Module._load (node:internal/modules/cjs/loader:827:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/http.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/http/index.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/index.js',
'/var/jenkins_home/workspace/sele-login/login.js'
]
}
Node.js v18.1.0
Build step 'Execute shell' marked build as failure
Finished: FAILURE
所以我开始工作了。
我唯一做的就是在步骤执行 node login.js
.
之前添加另一个 Build step
> Execute shell - npm install
所以它正在做的(我想)是 npm install
将尝试在每次构建时从 package.json
安装软件包。
现在我要找出如何缓存它:)
我正在尝试 运行 来自 git 的 selenium 测试,并在 docker 的 selenium 网格上使用 Jenkins 作业。
作业应该获取 .js,它正在测试和连接到网格。该文件应该在 jenkins 中使用 build 执行。由于我将 nodeJS 与 selenium 一起使用,因此我需要 Jenkins 来获取所有请求的 npm 包。
在 Jenkins 中,我下载了 nodeJS 插件,在 Global Tool Configuration
中,我在 Global npm packages to install
列中填写了 selenium-webdriver@4.1.2
(我选择的 nodeJS 版本是 18.1.0)
作业成功获得 git 回购。在 Build
我有简单的命令 node login.js
.
不幸的是,当我尝试构建该作业时,我仍然得到 MODULE NOT FOUND
的 selenium-webdriver。
在构建日志中有不同的模块错误,因为我试图将 node_modules/selenium-wedriver
直接添加到 repo。但我想这不是正确的方法。
谁能给我指出正确的方向?
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/sele-login
The recommended git tool is: NONE
using credential 34b86306-efa8-432e-92fb-63b586339585
> git rev-parse --resolve-git-dir /var/jenkins_home/workspace/sele-login/.git # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url git@github.com:MrWolfcan/sele-test.git # timeout=10
Fetching upstream changes from git@github.com:MrWolfcan/sele-test.git
> git --version # timeout=10
> git --version # 'git version 2.30.2'
using GIT_SSH to set credentials test2
> git fetch --tags --force --progress -- git@github.com:MrWolfcan/sele-test.git +refs/heads/*:refs/remotes/origin/* # timeout=10
Seen branch in repository origin/main
Seen 1 remote branch
> git show-ref --tags -d # timeout=10
Checking out Revision 4cb9f780e70818120c1128aad85b18c1f71ad4dd (origin/main)
> git config core.sparsecheckout # timeout=10
> git checkout -f 4cb9f780e70818120c1128aad85b18c1f71ad4dd # timeout=10
Commit message: "Add files via upload"
> git rev-list --no-walk 37e8fc5193006e5820cc66209c10a8f799478786 # timeout=10
[sele-login] $ /bin/sh -xe /tmp/jenkins11143974131067136179.sh
+ node login.js
node:internal/modules/cjs/loader:942
throw err;
^
Error: Cannot find module 'ws'
Require stack:
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/http.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/http/index.js
- /var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/index.js
- /var/jenkins_home/workspace/sele-login/login.js
at Module._resolveFilename (node:internal/modules/cjs/loader:939:15)
at Module._load (node:internal/modules/cjs/loader:780:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js:33:19)
at Module._compile (node:internal/modules/cjs/loader:1105:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Module._load (node:internal/modules/cjs/loader:827:12)
at Module.require (node:internal/modules/cjs/loader:1005:19) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/webdriver.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/lib/http.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/http/index.js',
'/var/jenkins_home/workspace/sele-login/node_modules/selenium-webdriver/index.js',
'/var/jenkins_home/workspace/sele-login/login.js'
]
}
Node.js v18.1.0
Build step 'Execute shell' marked build as failure
Finished: FAILURE
所以我开始工作了。
我唯一做的就是在步骤执行 node login.js
.
Build step
> Execute shell - npm install
所以它正在做的(我想)是 npm install
将尝试在每次构建时从 package.json
安装软件包。
现在我要找出如何缓存它:)