如何使用jenkins在远程登台服务器(ubuntu)上运行webdriver测试用例?

时间:2013-09-10 12:48:35

标签: jenkins webdriver maven-3 phantomjs

  1. 我在github上推送了代码
  2. 我已经配置了Jenkins staging.website.com:8xxx,它是一台Ubuntu机器
  3. 我可以通过我的windows7机器上的putty.exe访问这台ubuntu机器
  4. 我可以通过Jenkins在github上获取代码意味着我可以通过Jenkins运行构建但是它失败了问题:我无法启动浏览器。
  5. 我试过

    DesiredCapabilities capability = DesiredCapabilities.firefox();
                 capability.setCapability("platform", Platform.LINUX);
                 capability.setCapability("binary", "usr/bin/firefox");
                 driver= new FirefoxDriver();
                 driver.get("mytestproject.com");
    

    但它给出了错误(虽然我使用的是最新的selenium jar 2.35.0,尝试过maven clean并重新启动服务器):

     Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: Error: no display specified Error: no display specified Build info: version: '2.35.0', revision: '8df0c6bedf70ff9f22c647788f9fe9c8d22210e2', time: '2013-08-17 12:46:41' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.5.0-21-generic', java.version: '1.7.0_25' Driver info: driver.version: FirefoxDriver
    org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:251)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:195)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:186)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:99)
    

    我已经使用sudo lsof -i :7055检查过没有使用此端口(通过远程ubuntu机器上的putty) 但在阅读了很多论坛后,我无法解决它。所以我尝试使用phantomjs,但它也给出了错误: 我试过了:

    dCaps = new DesiredCapabilities();
                dCaps.setJavascriptEnabled(true);
                dCaps.setCapability("takesScreenshot", false);
    
                driver = new PhantomJSDriver(dCaps);
    
                driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    
                driver.get(Prod);
    

    它在driver = new PhantomJSDriver(dCaps);下面给出了红线。其实我不知道如何在Maven项目中使用Phantom.js。 我想要实现的目标:我想在这个远程ubuntu登台服务器,无头无头(ghostdriver)或firefox上运行测试用例。

2 个答案:

答案 0 :(得分:0)

我认为Jenkins可能会失败,因为它在一个没有定义显示的新终端窗口中运行。似乎Firefox进程不允许这样做。

"Error: no display specified"

这可能会有所帮助: How can I specify a display?

答案 1 :(得分:0)

为什么你不让它使用默认的Firefox二进制文件? Jenkins只需要为所有用户安装的Firefox。如果我没记错,firefox在任何Ubuntu中都是默认的。

 Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055;