使用Web驱动程序和Selenium并行执行两个套件

时间:2016-02-08 06:43:56

标签: selenium selenium-webdriver automation

我的项目中有两个testNG套件。我想并行运行它们。

Suite1:

class A
class B

Suite2:

class C
class D

我想在同一台计算机上并行运行SUITE1SUITE2。但是,Class B的{​​{1}}应仅在SUITE1之后运行。与第二个套件相同:第一个和第二个类需要串行运行。

我如何实现这一目标?

2 个答案:

答案 0 :(得分:0)

为了实现,您需要添加注释为@Test(priority = ??)。优先级的默认值为零。

如果您没有提到优先级,它将把所有测试用例都作为“priority = 0”并执行。

如果我们将优先级定义为“priority =”,那么只有当所有没有任何优先级作为默认优先级的测试用例都设置为“priority = 0”时,才会执行这些测试用例

根据您的要求,您不需要两个xml。按照这些,你应该有相同的测试并行运行。

<suite name="Test-class Suite" parallel="tests" thread-count="2">
<test name="Test-class test 1">
    <classes>
        <class name="com.ClassA" />
        <class name="com.ClassB" />
    </classes>
</test>
<test name="Test-class test 2">
    <classes>
        <class name="com.ClassC" />
        <class name="com.ClassD" />
    </classes>
</test>

确保您的并行参数根据您的要求具有parallel ='true'和thread-count。

答案 1 :(得分:0)

按指定顺序执行类,需要使用preserve-order =&#34; true&#34;。根据下面的xml文件,首先指定ClassB,然后首先执行ClassB,然后执行ClassA,因为我们指定了preserve-order =&#34; true&#34;

如果您想按照要求的顺序在课堂上执行@Test方法,请使用优先级。如下所示

@Test(priority=1)
下面的

是xml文件,例如..

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite" parallel="tests" preserve-order="true">

  <test name="TestA">
    <classes>
      <class name="com.test.ClassB"/>
      <class name="com.test.ClassA"/>
    </classes>   </test> <!-- Test A--> 

 <test name="TestB">
    <classes>
      <class name="com.test.ClassD"/>
      <class name="com.test.ClassC"/>
    </classes>   </test> <!-- Test B--> 
</suite> <!-- Suite -->

*****根据评论进行更新

您好,

要执行两个套件,需要创建两个xml文件并在这些xml文件中指定套件。然后创建另一个xml文件来调用这些套件xml文件..

假设我在testng1.xml文件中有一个套件

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 <suite name="Suite1" parallel="false" preserve-order="true">

 <test name="TestA">
 <classes>
  <class name="com.test.NewTest1"/>
 </classes>
 </test> <!-- Test -->
</suite> <!-- Suite -->

testng2.xml文件中的另一个套件

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 <suite name="Suite2" parallel="false" preserve-order="true">

<test name="TestB">
  <classes>
   <class name="com.test.NewTest1"/>
 </classes>
</test> <!-- Test -->

然后使用另一个testng.xml文件并调用这两个文件。通过执行此文件,将执行两个套件。

 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
  <suite name="My test suite" preserve-order="true">
   <suite-files>
    <suite-file path="Testng1.xml"></suite-file>
    <suite-file path="Testng2.xml"></suite-file>
 </suite-files>
 </suite>