2015-02-06 142 views
0

我想通過Jenkins使用FireFox Webdriver運行UI測試。我使用xvfb來模擬瀏覽器,因爲構建框沒有顯示。在Jenkins上通過Firefox運行Selenium UI測試時出錯

我遇到了以下錯誤:

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. (user: 'UnknownUser-0', output: '1423245467418') 
Build info: version: '2.42.2', revision: '6a6995d31c7c56c340d6f45a76976d43506cd6cc', time: '2014-06-03 10:52:47' 
System info: os.name: 'Linux', os.arch: 'amd64', java.version: '1.7.0_25' 
Driver info: driver.version: FirefoxDriver 
    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.<init>(RemoteWebDriver.java:126) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182) 
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95) 
    at library.util.BrowserFactory.getFirefoxWebDriver(BrowserFactory.java:126) 
    at library.util.BrowserFactory.getWebDriver(BrowserFactory.java:70) 
    at TESTS.myTestPkg.TestSomething.<init>(TestSomething.java:15) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7055 [/127.0.0.1] failed: Connection refused 
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) 
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) 
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86) 
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:204) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:173) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165) 
    at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:362) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572) 
Caused by: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72) 
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:117) 

XVFB正在構建開始之前如下出發,這是使用XVFB插上詹金斯配置:

Xvfb starting$ /usr/bin//Xvfb :10 -screen 0 1024x768x24 -fbdir /srv/jenkins/xvfb-2015-02-06_12-57-37-3245666068187787922.fbdir 

我保證Firefox在PATH中。

有人能告訴我如何解決它嗎?

+0

你試圖啓動什麼Firefox版本?謝謝。 – alecxe 2015-02-06 19:13:22

+0

安裝的FF版本是31.2.0 – naspras 2015-02-06 19:47:07

回答

0

首先通過本地測試來修復您的Firefox版本和硒版本匹配。如果通過Jenkins運行作業,並且日誌中出現錯誤,則在45000 ms後無法連接到端口7055上的主機127.0.0.1。 Firefox的控制檯輸出:錯誤:無法打開顯示:0

要解決看下面的步驟:

1)火狐將推出只有當你有Xvfb來運行, 例如:Xvfb來:15 -screen 0 1024x768x16所以檢查首先,您可以通過將ps -ef添加到作業的前置步驟(shell執行)中來包含該作業。 Xvfb:15 -screen 0 1024x768x16 &你可以進入你的主機/節點,在那裏測試必須以無頭模式啓動。

2)即使你明確地定義了DISPLAY值,但你仍然有錯誤,那麼最好的方法是在Jenkin作業本身中注入一個環境值。在構建環境下>注入env變量>>屬性內容>> DISPLAY =:15(顯示您可以根據自己的選擇,但應該在xvfb中運行)

!!運行你的工作,應該已經修復。

相關問題