2016-09-20 169 views
1

我正在嘗試使用Bamboo的構建和部署功能來運行我的項目的Selenium自動化測試。Selenium測試在試圖與Bamboo一起運行時掛起

我們目前正在使用Maven任務來構建和運行常規JUNIT測試,並且計劃是在代碼成功部署到服務器之後使用另一個Maven任務來運行Selenium測試。目前,一切似乎本地運行良好,但是當竹子試圖運行硒測試時,它似乎無限期地掛起。不幸的是,我沒有遠程訪問服務器來觀看它,但我知道它是一個運行在操作系統版本上的Microsoft服務器:Windows 2012 R2 64位。我也知道服務器正在使用java版本「1.8.0_101」,這與我的本地設置相同。我已經包含了我在下面運行的代碼示例。

import java.util.concurrent.TimeUnit; 

import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.remote.DesiredCapabilities; 

public class SeleniumTestExample { 
WebDriver driver; 
@Before 
public void setup(){ 
    System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer32bit.exe"); 
    DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); 
    ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
    driver = new InternetExplorerDriver(null, ieCapabilities); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    driver.get("https://google.com"); 
} 

@Test 
public void printPageTitle(){ 
    System.out.println("Title of Page is: " + driver.getTitle()); 
    driver.quit(); 
} 

}

當通過竹運行,在日誌中的唯一輸出是線...

發起者InternetExplorerDriver服務器(32位)

2.53.1.0

在端口8080上收聽

只允許本地連接

+0

你在哪裏試圖在CI(竹)服務器上運行你的測試? – user1207289

+0

是的,我試圖在竹服務器上運行這些測試,但是能否詳細說明一下您的問題? – NB987654321

回答

0

CI或Bamboo服務器應該用於控制您的測試。您不應該嘗試在CI服務器上運行測試。你遇到的問題可能是因爲這個。您正嘗試使用CI服務器作爲本地計算機,它不會像本地計算機那樣響應。相反,您應該在設置中使用selenium grid,以便通過使用集線器和節點遠程連接到機器。您可能還必須使用remote webdriver。也看看this

0

我見過這個使用TeamCity,在這種情況下,IE告訴你,它的可執行文件將只接受來自本地機器的連接。據Selenium org

由IEDriverServer.exe啓動HTTP服務器設置訪問控制列表,只接受來自本機的連接,並禁止來自遠程計算機的傳入連接。目前,如果不修改源代碼到IEDriverServer.exe,則無法更改。要在遠程計算機上運行Internet Explorer驅動程序,請將Java獨立遠程服務器與您的語言綁定的RemoteWebDriver等效項相關聯。

所以首先通過通過PARAM通過像這樣運行chromedriver:

chromedriver --whitelisted-ips="" 

這將基本上所有的白名單IP的,當然並非總是理想的解決方案。但是會告訴你,你的測試可以在CI配置上運行。接下來要尋找的是您的用戶權限。請求您的管理員授予您更多的權限,以便完成您的工作。請記住,IE的保護模式可能需要您的用戶進行一些額外的更改。如果這些都不起作用,請考慮使用帶有IE節點的Selenium grid

0

試圖擺脫的代碼行:

所有的
System.setProperty("webdriver.ie.driver", "src/test/resources/IEDriverServer32bit.exe"); 

首先,它告訴其中硒應該尋找的webdriver的IE瀏覽器。由於Bamboo服務器是一臺Windows機器,因此您必須使用文件的絕對路徑進行設置,例如「C:\ test \ webdriver \ IEDriverServer32bit.exe」。

其次,可以使用Bamboo任務的環境變量設置屬性。

第三,如果你想將它定義上的蒼蠅,你可以在pom.xml中定義屬性爲:

<webdriver.ie.driver.path> C:\test\webdriver\IEDriverServer32bit.exe </webdriver.ie.driver.path>

,並在系統屬性Maven的surefire-的幫助下使用它插入。

,那麼你可以使用命令

mvn test -Dwebdriver.ie.driver.path=C:\test\webdriver\IEDriverServer32bit.exe

與任何你想要的路徑運行試驗。