【转】TestNG系列之--02 执行顺序控制

1. class执行顺序控制之------testng.xml之preserve-order

preserve-order:用来控制 <test> 里面所有 <classes> 的执行顺序。 <test> 中默认的preserve-order为true,表示 <test> 下所有 <classes> 按照顺序执行。
如:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
<suite name="suite1">  
  <test name="test" preserve-order="true">  
  <classes >  
    <class name="com.pack.ClassTwo">  
    <class name="com.pack.ClassThree">  
    <class name="com.pack.ClassOne">  
  </classes >  
  </test>  
</suite> 

执行顺序:按照ClassTwo,ClassThree,ClassOne执行

【注意】 一个 <class> 类里面可能存在多个测试方法(被@Test注解的方法),这些方法的执行顺序不受preserve-order控制。默认测试方法的执行顺序是按照方法名的首字母升序排序执行的。

2. @test执行顺序控制

2.1 使用priority指定执行顺序(默认值为0),数值越小,越靠前执行,

如:

@Test(priority = 0)  
public void testMethod1() {  
}  
@Test(priority = 1)  
public void testMethod2() {  
}  
@Test(priority = 2)  
public void testMethod3() {  
} 

执行顺序:按照testMethod1、testMethod2、testMethod3顺序执行

2.2 方法名称按首字母排序

因为默认执行顺序是按照方法名的首字母升序排序执行。那么,有目的地去定制方法名称,就可以让方法按照我们要求的顺序执行。
如:

@Test public void B() {  
  }  
@Test public void A() {  
 }  
@Test public void C() {  
 } 

执行顺序:按照A、B、C顺序执行。

2.3 在xml里面使用 <include> 指定需要执行的方法和顺序

如:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"><suite name="Preserve order test runs">  
   <test name="test" preserve-order="true">  
     <classes>  
       <class name="com.pack.ClassOne">  
           <methods>  
               <include name="B" />  
               <include name="A" />  
          </methods>  
       </class>  
    </classes>  
   </test></suite> 

执行顺序:ClassOne执行两个测试方法,先执行B,然后执行A。

posted @ 2017-12-28 09:54  雨 燕  阅读(3256)  评论(0编辑  收藏  举报