问题:
我们正在Jenkins中运行NightWatch测试,偶尔会出现此错误:
[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_SESSION_BUS_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
重建作业通常会成功运行测试。 的软件'版本:
Chrome:57
Chrome驱动程序:2.28
Selenium:3.0.1
NightWatch:0.9.13(如果最新版本有错误但没有变化,则从0.9.14下降。)
詹金斯:1.6倍Ubuntu:16.04
使用xvfb
错误情景
测试运行正常,直到大约2周前,当我们切换到Ubuntu 16时,但那天它也开始在Ubuntu 14上发生。
当我们刚刚开始使用新的Jenkins奴隶(在AWS云上)时,尤其会发生这种情况。在测试运行的最初阶段会发生更多的事情,但有时也会在运行过程中发生。
我会感激任何帮助或指示!
答案 0 :(得分:0)
昨天我遇到同样的问题。 也许你可以改变Chrome的版本。 例如Chrome:55。
当我更改了版本的铬硒
答案 1 :(得分:0)
我们遇到了类似的问题,但我们的错误消息更具体:
Selenium is already running on port ####. Or some other service is.
解决方案是使用Jenkins Port Allocator Plugin为环境变量分配可用的端口号。
从那里,我们可以在我们的globals.js中设置这样的端口号(在本地运行时默认为4444):
portNumber: process.env.PORT_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文件中,我们将所有端口引用的值设置为:
"<%= portNumber %>"