2016-09-20 73 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

与任何你想要的路径运行试验。