如何使用@Nest按顺序运行前三个方法,使用TestNG并行地使用@Test运行接下来的三个方法?

时间:2017-03-13 07:27:39

标签: java selenium parallel-processing webdriver testng

@Test(TestNG)注释有6种方法。我想按顺序使用@Test运行前三个方法,使用TestNG并行地使用@Test运行接下来的三个方法。我怎样才能做到这一点?

以下是代码段:

@Test
public void m1(){

}

@Test
public void m2(){

}

@Test
public void m3(){

}

@Test
public void m4(){

}

@Test
public void m5(){

}

@Test
public void m6(){

}

非常感谢您的期待!

1 个答案:

答案 0 :(得分:0)

好的,为了保留订单,您可以使用优先级:

@Test (priority=1)
public void m1(){

}

@Test (priority=2)
public void m2(){

}

@Test (priority=3)
public void m3(){

}

请注意,您不需要为其余方法(4-6)设置优先级,因为您要并行运行它们。这是你的xml,为了运行它:

!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name="Regression" parallel="methods" thread-count="3">

 <test name="smokeTest">    
    <classes>   
    <class name="regression.sequentialParallelExecution"/>  
    </classes>
 </test>   

</suite>

值得注意的是上面的XML:

  1. 您选择以并行方式执行(您也可以选择测试或实例)
  2. 线程计数为3,因为您希望并行执行3个方法
  3. 前3个方法将依次运行(即使在并行模式下它们仍保留优先级顺序)
  4. PS。如果您希望方法2在方法1失败时不执行,那么您可以使用依赖于以下方法:

    @Test (priority=1)
    public void m1(){
    
    }
    
    @Test (priority=2, dependsOnMethods="m1")
    public void m2(){
    
    }
    

    祝你好运!

    请注意编辑我帖子的Julian。首先,非常感谢,我不知道dependsOnMethods优先考虑。我不得不承认,我有点困惑。我一直在成功使用优先级和依赖方法共同获得所需的结果。为了仔细检查我的发现,我发现了这篇文章priorities and dependsOnMethods。我直接复制粘贴了OP发布的代码并立即得到&#39;预期结果&#39; ,没有任何修改。如果可以进一步解释,我会很高兴。干杯!