TestNG测试执行顺序

1.preserve-order属性,之前一直认为preserve-order属性是控制配置方法的执行顺序的,其实不是,preserve-order主要是控制test下节点classes执行顺序的

例如:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
<suite name="framework_testng">  
    <test name="test" preserve-order="true">    
        <classes>  
            <class name="com.demo.One"></class>
            <class name="com.demo.Two"></class>
            <class name="com.demo.Three"></class>  
        </classes>  
    </test>  
</suite>          

以上将按照 类One Two Three的顺序执行

2.那么要控制方法的执行顺序,可以采取以下方式:

(1).使用priority控制,例如:

@Test(priority = 0)
public void test001() {

}

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

}

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

}

这样指定以后,将按照test001、test002、test003顺序执行。

(2).使用方法命名控制

执行顺序是按照方法名的字典序升序排序执行的,例如方法名命名为:A()  B()  C()

这样就会按照A B C的顺序进行执行

(3).通过include控制,例如:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">  
<suite name="framework_testng">  
    <test name="test" preserve-order="true">   
        <classes>  
            <class name="com.demo.Yltest">
            	<methods >
			<include name="z" />
			<include name="c" />
			<include name="d" />
			<include name="e" />
			<include name="f" />
			<include name="g" />
			<include name="h" />
		</methods>
            </class>
        </classes>  
    </test>  
</suite> 

这样将按照 z c d e f g h的顺序执行 

posted @ 2017-06-14 10:05  星星故乡  阅读(4813)  评论(0编辑  收藏  举报