2017-01-05 7 views
4

Запуск тестов Nightwatch на CI в Chrome. Иногда (примерно раз в 5 строках) я встречаю следующую ошибку в одном из тестов. Каждое испытание перед этим прекрасно работает.Nightwatch Selenium "socket hang up"

У меня есть последний автономный сервер Chromedriver и Selenium.

Я понял, что проблема в том, что сервер Selenium выходит из строя в середине запроса, но я не знаю почему.

Error retrieving a new session from the selenium server 

Connection refused! Is selenium server started? 
{ Error: socket hang up 
    at createHangUpError (_http_client.js:254:15) 
    at Socket.socketCloseListener (_http_client.js:286:23) 
    at emitOne (events.js:101:20) 
    at Socket.emit (events.js:188:7) 
    at TCP._handle.close [as _onclose] (net.js:498:12) code: 'ECONNRESET' } 

Также здесь является частью моей nightwatch.json, которая заботится о селена.

"selenium": { 
    "start_process": true, 
    "server_path": "scripts/Nightwatch/selenium-server-standalone-3.0.1.jar", 
    "log_path": "app/E2E/reports/selenium", 
    "port": 4444, 
    "cli_args": { 
     "webdriver.chrome.driver": "scripts/Nightwatch/chromedriver" 
    } 
    } 

Любые идеи, почему Selenium аварийно и как решить эту проблему?

ответ

4

Была ли такая же проблема с селеном/хромированным кратером на Кодексе. Я попытался понизить селен до 2.53.1 безрезультатно. Подробные протоколирования не показали никакой полезной информации, просто сервер селена вдруг не запускал новые сессии где-то случайно в наших тестах.

То, что казалось работе добавлял следующее наших тестовых команд:

# Prevent chrome deadlock 
export DBUS_SESSION_BUS_ADDRESS=/dev/null 

проблема описана здесь: https://github.com/SeleniumHQ/docker-selenium/issues/87

Похоже есть проблема с некоторыми докеров контейнеров, которые могли бы объяснить его происходит на CI, а на местах работает нормально.

+4

я все еще была проблема после того, как сделать это, но потом понял, я не запускать Xvfb-бегать команды для обезглавленной тестирования '' 'Xvfb перспективе НПМ запустить e2e''' работает в настоящее время –

+0

@MartinNaughton Не могли бы вы превратить это в ответ? Это поставило проблему для меня. –

+0

Что такое e2e: D? –

3

Такое же сообщение об исключении отображается (каждый раз, когда выполняется сборка), когда хром не настроен правильно в nightwatch.json. В частности, она требует параметр «--no-песочница», чтобы быть обеспечена например

"chrome": { 
    "desiredCapabilities": { 
    "browserName": "chrome", 
    "javascriptEnabled": true, 
    "acceptSslCerts": true, 
    "chromeOptions": { 
    "args" : ["--no-sandbox"] 
    } 
} 
0

Я использовал следующие обозначения арга, получил соединение отказалось и использовал Xvfb в качестве обходного пути.

chrome: { 
    silent: false, 
    retry_attempts: 1, 
    desiredCapabilities: { 
    browserName: 'chrome', 
    javascriptEnabled: true, 
    acceptSslCerts: true, 
    chromeOptions: { 
     args: [ 
     '--disable-gpu --no-sandbox --headless --window-size=1920,1080 --verbose' 
     ] 
    } 
    } 
}, 

Теперь коллега узнал, что арги должны быть разделены и без черточек:

 args: [ 
     'disable-gpu', 'no-sandbox', 'headless', 'window-size=1920,1080', 'verbose' 
     ] 

Нет больше ошибок даже без Xvfb - работает для меня!

1

Обновление моей записи файла хоста исправлено. Исправление: удалите все записи вашего хоста и добавьте в свой файл хоста. 127.0.0.1 локальный

Смежные вопросы