Selenium Jenkins/Ubuntu16夜视硒插座故障
问题: 我们正在Jenkins运行夜间监视测试,偶尔会出现以下错误:Selenium Jenkins/Ubuntu16夜视硒插座故障,selenium,jenkins,selenium-chromedriver,nightwatch.js,xvfb,Selenium,Jenkins,Selenium Chromedriver,Nightwatch.js,Xvfb,问题: 我们正在Jenkins运行夜间监视测试,偶尔会出现以下错误: [0;31mConnection refused! Is selenium server started? [0m[0;90m{ Error: socket hang up at createHangUpError (_http_client.js:253:15) at Socket.socketCloseListener (_http_client.js:285:23) at emitOne (eve
[0;31mConnection refused! Is selenium server started?
[0m[0;90m{ Error: socket hang up
at createHangUpError (_http_client.js:253:15)
at Socket.socketCloseListener (_http_client.js:285:23)
at emitOne (events.js:101:20)
at Socket.emit (events.js:188:7)
at TCP._handle.close [as _onclose] (net.js:501:12) code: 'ECONNRESET' }[0m
其他地方推荐的修复程序已经存在:
export DBUS\u SESSION\u BUS\u ADDRESS=/dev/null
以下是我们运行测试的方式:
sudo npm install selenium-standalone -g
selenium-standalone install --version=3.0.1 --baseURL=https://selenium-release.storage.googleapis.com --drivers.chrome.version=2.28 --drivers.chrome.baseURL=https://chromedriver.storage.googleapis.com --basePath=bin
sudo npm install nightwatch@0.9.13 -g && nightwatch --tag sanity --retries 1 --suiteRetries 1
重建作业通常会成功运行测试。
软件版本:
铬:57
Chrome驱动程序:2.28
硒:3.0.1
NightWatch:0.9.13(如果最新版本有bug但没有更改,则从0.9.14降到0.9.13)
詹金斯:1.6倍
Ubuntu:16.04
使用xvfb
错误场景
直到大约两周前,当我们切换到Ubuntu 16时,测试一直运行良好,但那天它也开始在Ubuntu 14上运行
特别是当我们刚刚纺出一个新的Jenkins slave(AWS云)时,在测试开始的时候更频繁,但有时也发生在运行的中间。
我将感谢任何帮助或指点 我昨天也有同样的问题。 也许你可以改变Chrome的版本。 例如铬:55
当我更改selenium的chrome版本时,我们遇到了类似的问题,但我们的错误消息更具体:
Selenium已在端口####上运行。或其他服务。
解决方案是使用为环境变量分配可用端口号
从那里,我们可以像这样在globals.js中设置端口号(本地运行的默认端口号为4444):
portNumber:process.env.PORT|u NUMBER|4444,
在nightwatch.conf.js文件中,我们使用lodash模板替换nightwatch.json中的值,如下所示:
fs = require('fs'),
_ = require('lodash'),
template = _.template(fs.readFileSync('./nightwatch.json', 'utf8')),
settingsString,
settings;
settingsString = template({
portNumber: globals.portNumber
});
settings = JSON.parse(settingsString);
module.exports = settings;
最后,在nightwatch.conf文件中,我们将所有端口引用的值设置为:
”