2015-06-22 2 views
2

Я пытаюсь настроить jenkins для запуска моих испытаний транспортира. Я знаю, что мне нужно запустить транспортир без браузера. Как его настроить?Jenkins + WebDriver + Транспортир: вызвано: org.openqa.selenium.remote.UnreachableBrowserException: не удалось запустить новый сеанс

Какие пакеты npm необходимо установить? Мои фактические пакеты (в package.json):

"devDependencies": { 
"karma": "~0.12", 
"karma-phantomjs-launcher": "~0.2", 
"karma-ng-html2js-preprocessor": "~0.1", 
"protractor": "~2.1.0", 
"bower": "~1.3.8", 
"jasmine": "~2.3.1", 
"karma-jasmine": "~0.3.5", 
"karma-requirejs": "~0.2.2" 

}

В моей локальной машине все отлично работает, потому что я вижу открытие хром окна, и я вижу, что тесты происходит на нем.

Но когда я пытаюсь запустить его на Дженкинса, я получил это сообщения:

вызвано следующими причинами: org.openqa.selenium.remote.UnreachableBrowserException: Не удалось запустить новый сеанс. Возможными причинами являются неверный адрес удаленного сервера или неудачный запуск браузера.
Информация о сборке: версия: '2.45.0', версия: '5017cb8', время: '2015-02-26 23:59:50', ip: '127.0.1.1', os.name: 'Linux' , os.arch: 'amd64', os.version: '3.13.0-24-generic', java.version: '1.8.0_25' Информация о драйвере: driver.version: ChromeDriver на org.openqa.selenium.remote .RemoteWebDriver.execute (RemoteWebDriver.java:593) на org.openqa.selenium.remote.RemoteWebDriver.startSession (RemoteWebDriver.java:240) на org.openqa.selenium.remote.RemoteWebDriver. (RemoteWebDriver.java:126) на org.openqa.selenium.remote.RemoteWebDriver. (RemoteWebDriver.java:139) на org.openqa.selenium.chrome.ChromeDriver. (ChromeDriver.java:171) на org.openqa.selenium.chrome.ChromeDriver. (ChromeDriver.java:139) ... 14 еще
Вызвано: org.openqa.selenium.WebDriverException: Сроки ожидания запуска сервера драйверов.
Информация о сборке: версия: '2.45.0', версия: '5017cb8', время: '2015-02-26 23:59:50', ip: '127.0.1.1', os.name: 'Linux' , os.arch: 'amd64', os.version: '3.13.0-24-generic', java.version: '1.8.0_25' Информация о драйвере: driver.version: ChromeDriver на org.openqa.selenium.remote .service.DriverService.start (DriverService.java:171) на org.openqa.selenium.remote.service.DriverCommandExecutor.execute (DriverCommandExecutor.java:62) на org.openqa.selenium.remote.RemoteWebDriver.execute (RemoteWebDriver .java: 572) ... 19 еще
Вызвать: org.openqa.selenium.net.UrlChecker $ TimeoutException: Сроки ожидания [http://localhost:4945/status] будут доступны после 20001 м s
в org.openqa.selenium.net.UrlChecker.waitUntilAvailable (UrlChecker.java:104) в org.openqa.selenium.remote.service.DriverService.start (DriverService.java:168) ... 21 больше

Мои protractor.conf.js:

exports.config = { 
// The address of a running selenium server. 
seleniumAddress: 'http://localhost:4444/wd/hub', 

// Capabilities to be passed to the webdriver instance. 
capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
     'args': ['incognito', 'disable-extensions', 'start-maximized', 'enable-crash-reporter-for-testing', '--test-type'] 
    }, 
    'loggingPrefs': { 
     'browser': 'ALL' 
    } 
}, 

getPageTimeout: 20000, 

    framework: 'jasmine2', 

// Spec patterns are relative to the current working directly when 
// protractor is called. 

specs: ['global_setup.js', 'scenarios.js', 'campaign-grid-scenarios.js', 'create-campaign-scenarios.js'], 
baseUrl: 'http://localhost:18090', 

// Options to be passed to Jasmine-node. 
jasmineNodeOpts: { 
    showColors: true, 
    defaultTimeoutInterval: 30000 
} 

};

Что вызывает этот таймаут? Это потому, что webdriver - хром, но хром нельзя открыть в моей настройке jenkins? Я искал похожие вопросы, но ничего не нашел.

спасибо.

ответ

1

Это потому, что хром не установлен в вашей настройке Jenkins. Есть несколько вариантов для вас в зависимости от вашей ситуации.

  1. Если у вас есть автономный Jenkins экземпляр, и вы знаете, что вы не будете иметь никаких произвольно выбранные узлов, то вы могли бы использовать обезглавленную реализацию браузера, как PhantomJS. Все, что вам нужно, чтобы на вашем Jenkins было установлено phantomjs, и сообщите вашему тесту, чтобы он работал на phantomjs вместо chrome, как browserName : 'phantomjs'. Вам не нужно включать phantomjs в ваш package.json. Просто убедитесь, что PhantomJS установлен и его исполняемый файл помещен где-то в PATH.

  2. Во-вторых, вы можете настроить селеновую сетку и настроить узлы с различными браузерами, которые вы хотите протестировать. От Jenkins вы запускаете тесты на удаленную селенную сетку в браузере по вашему выбору. Существуют платные варианты третьей части, такие как лаборатории соуса или стек браузера, если вы хотите пройти этот маршрут.

+0

Я хочу запустить его на отдельном экземпляре Jenkins, и я знаю, что этот безголовый браузер, такой как phantomjs, является тем, что я ищу. Не могли бы вы более подробно рассказать о конфигурациях, которые мне нужно сделать, чтобы этот сценарий работал? Как вы сказали, я должен сказать, что мои тесты выполняются на фантомах. Это означает возможности. имя_файла: 'phantomjs'? Но перед этим мне нужно добавить 'phantomjs' в мой 'package.json', правильно? И что еще? Спасибо за ваше время, @nilesh. –

+0

Правильно, просто скажите имя браузера: «phantomjs» и убедитесь, что PhantomJS установлен и находится на пути на сервере Jenkins. Не нужно ничего добавлять к package.json. Я обновил ответ – nilesh

+0

Официальная документация Протранслятора рекомендует против использования phantomjs [см.] (Https://github.com/angular/protractor/blob/master/docs/browser-setup.md#setting-up-phantomjs). Каков ваш опыт @nilesh? Я должен беспокоиться? –

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