无法使用selenium网格在远程计算机上执行测试

时间:2016-08-30 09:11:51

标签: eclipse selenium-grid2

我编写了并行运行测试的代码。我已经在我的ubuntu机器上启动了selenium hub,并从虚拟机和另一个系统的另一个节点向其注册了2个节点。我的代码正在虚拟机上运行机器但不能在远程机器上运行。

这是我的代码

package com.example.selenium;

    import org.testng.annotations.Test;

    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.concurrent.TimeUnit;

    import org.openqa.selenium.By;
    import org.openqa.selenium.Platform;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Parameters;

    public class ParllelTest {
        static RemoteWebDriver driver;

      @BeforeTest (alwaysRun=true)
      @Parameters({"platform","browserName","remoteurl"})
      public void beforeTest(String platform,String browserName,String remoteurl) throws MalformedURLException {
          DesiredCapabilities cap = null;


          if(browserName.equals("firefox")) {

              cap=new DesiredCapabilities().firefox();


          cap.setPlatform(Platform.VISTA);
          cap.setBrowserName("firefox");
          }

          else if(browserName.equals("firefox"))
          {
              cap=new DesiredCapabilities().firefox();

              cap.setBrowserName("firefox");
              cap.setPlatform(Platform.WIN8);
          }


          driver=new RemoteWebDriver(new URL(remoteurl),cap);
      }
      @Test
      public void googlesearch() 
      {


          driver.get("http://www.gmail.com");
          driver.findElement(By.name("username")).sendKeys("xxx");
          driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
          driver.findElement(By.name("password")).sendKeys("xxxx");
          driver.manage().timeouts().implicitlyWait(10,  TimeUnit.SECONDS);
          driver.findElement(By.id("click")).click();
      }
    }

以及相应的xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestSuite" thread-count="4" parallel="tests" >
<test verbose="3" name="Vista">
<paramaters>
   <parameter name="platform" value="VISTA"/>
   <parameter name="browserName" value="firefox"/>
   <parameter name="remoteurl" value="http://10.X.X.X:5557/wd/hub"/>
</paramaters>
<classes>
    <class name="com.example.selenium.ParllelTest">
     <method>
        <include name="googlesearch"/>
      </method>   
    </class>
</classes>
</test>
<test verbose="3" name="windows">
 <paramaters>
   <parameter name="platform" value="WIN8"/>
   <parameter name="browserName" value="firefox"/>
   <parameter name="remoteurl" value="http://10.X.X.X:5553/wd/hub"/>
</paramaters>
<classes>
    <class name="com.example.selenium.ParllelTest">
       <method>
        <include name="googlesearch"/>
      </method>   
     </class>
</classes>
</test>

以下是iam尝试运行测试firefox版本的远程机器的规范:44 selenium jar:2.53.0平台:Windows 8

尝试运行测试时出现以下错误

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.

虽然我可以在我的远程计算机上使用chrome浏览器,但是我想要并行执行超过10个设备的测试,因此在每台计算机上设置chrome驱动程序路径将是繁忙的任务。我被困在这里可以有人帮助我吗?

0 个答案:

没有答案