我試圖設置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"
}
在我的本地機器一切正常,因爲我看到了Chrome瀏覽器窗口打開,我看到測試發生就可以了。
但是,當我嘗試在詹金斯運行它,我得到這個消息:
造成的: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 at org.openqa.selenium.remote .RemoteWebDriver.execute(RemoteWebDriver.java:593) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240) at 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 at org.openqa.selenium.remote .service.DriverService.start(DriverService.java:171) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:62) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver .java:572) ... 19更多
原因:org.openqa.selenium.net.UrlChecker $ TimeoutException:超時等待[http://localhost:4945/status]在20001 m後可用小號
在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設置中打開? 我一直在尋找類似的問題,但我沒有找到任何相關的問題。
謝謝。
我想在一個獨立的Jenkins實例上運行它,並且我知道像phantomjs這樣的無頭瀏覽器就是我正在尋找的。你能更加明確我需要做的配置來實現這個場景嗎?正如你所說,我應該告訴我的測試在phantomjs上運行。這意味着能力。 browserName:'phantomjs'? 但在此之前,我需要將'phantomjs'添加到我的'package.json'中,對嗎?還有什麼? 謝謝你的時間,@nilesh。 –
對,只需告訴browserName:'phantomjs'並確保PhantomJS已安裝並位於Jenkins服務器的路徑中。無需向package.json添加任何內容。我更新了回答 – nilesh
量角器官方文檔建議不要使用phantomjs [見](https://github.com/angular/protractor/blob/master/docs/browser-setup.md#setting-up-phantomjs)。你有什麼經驗@nilesh?我應該擔心嗎? –