如何在硒网格中运行并行测试用例?

时间:2013-07-29 12:35:59

标签: selenium selenium-webdriver selenium-grid selenium-grid2

我只有一个测试用例,我想在两台不同的机器上运行那个特定的测试用例,比如在Windows和其他linux中运行一个。我如何配置我的节点或selenium框架,以便它可以在不同的机器上同时运行我的测试用例。我在我的框架中进行了以下更改,以便在单个机器上运行它。

  DesiredCapabilities cap = new DesiredCapabilities();
  cap.setBrowserName("firefox");
  cap.setPlatform(Platform.ANY);
  driver = new RemoteWebDriver(new URL(nodeURL), cap);

2 个答案:

答案 0 :(得分:1)

第1步 - 创建两个可运行的JAR文件(我自己的方法),其中包含一个用于linux的测试和一个用于Windows的测试。可能通过这条线来区分:

cap.setPlatform(Platform.LINUX);

cap.setPlatform(Platform.WINDOWS);

从头部取得的能力,所以请求双重检查

第2步 - 启动集线器和两个节点

步骤3 - 从您的计算机运行两个JAR(假设JAR已配置集线器所在的位置)。集线器将自动为节点分配测试

如果您还有其他问题,请问我;)

答案 1 :(得分:1)

我想你可以试试TestNG。

在我的方法中,我有两个参数:OS和BROWSER。 使用testng.xml,您可以使用以下参数创建测试套件:

 <?xml version="1.0" encoding="iso-8859-1"?>
   <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
   <suite name="Your_suite" verbose="2" **parallel**="tests" >

   <test name='Your_Test_Name'>
       <parameter name='os' value='**WINDOWS**'/>
       <parameter name='browser' value='CHROME'/>
        <classes>
            <class name='tests.AnyTest'/>
        </classes>
   </test>

   <test name='Your_Test_Name'>
       <parameter name='os' value='**LINUS**'/>
       <parameter name='browser' value='FIREFOX'/>
        <classes>
            <class name='tests.AnyTest'/>
        </classes>
   </test>

  </suite>

所以我可以在windows,linux,macOS,android或iphone上运行我的测试,最重要的是,我不需要更改我的代码。

希望它有所帮助。