Textng.xml是TestNG的配置文件,用來定義TestNG中的test suit和test。Textng.xml在test suit中提供了很多不同的選擇,包括包,類和依賴測(cè)試方法,他也允許我們?cè)谝粋€(gè)單一的測(cè)試環(huán)境中運(yùn)行多個(gè)test,也允許我們?cè)诙嗑€程的環(huán)境中運(yùn)行多個(gè)test。
1.Textng.xml配置方式:
A.creating a test with classes
執(zhí)行不同包下的不同的類,Textng.xml腳本如下
<suite name="Class Suite" verbose="1">
<test name="Test">
<classes>
<class name="test.firstpackage.FirstTestClass" />
<class name="test.secondpackage.FirstTestClass" />
<class name="test.thirdpackage.FirstTestClass" />
</classes>
</test>
</suite>
B.creating a test with packages
執(zhí)行包下的所有類,Textng.xml腳本如下
<suite name="Package Suite" verbose="1">
<test name="Package Test">
<packages>
<package name="test.firstpackage" />
<package name="test.secondpackage" />
</packages>
</test>
</suite>
C.creating a test with methods
執(zhí)行類下的特定的方法,Textng.xml腳本如下
<suite name="Method Suite" verbose="1">
<test name="Method Test">
<classes>
<class name="test.firstpackage.FirstTestClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
D.creating a test suite with package, class, and test method
在一個(gè)test suit中可以一起執(zhí)行 package, class, 和test method ,Textng.xml腳本如下
<suite name="Combine Suite" verbose="1">
<test name="Combine Test">
<packages>
<package name="test.firstpackage" />
</packages>
<classes>
<class name="test.secondpackage.FirstTestClass" />
<class name="test.thirdpackage.FirstTestClass">
<methods>
<include name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
E.test suite to include a particular package
執(zhí)行某個(gè)包名包含某個(gè)關(guān)鍵詞的包,Textng.xml腳本如下
<suite name="Include Package Suite" verbose="1">
<test name="Include Package Test">
<packages>
<package name="test.*">
<include name="test.secondpackage" />
</package>
</packages>
</test>
</suite>
F.test suite to exclude a particular package
排除某個(gè)包,Textng.xml腳本如下
<suite name="Exclude Package Suite" verbose="1">
<test name="Exclude Package Test">
<packages>
<package name="test.*">
<exclude name="test.secondpackage" />
</package>
</packages>
</test>
</suite>
G.test suite to exclude a particular method
排除某個(gè)特定的方法,Textng.xml腳本如下
<suite name="Exclude Method Suite" verbose="1">
<test name="Exclude Method Test">
<classes>
<class name="test.firstpackage.FirstTestClass">
<methods>
<exclude name="firstTest" />
</methods>
</class>
</classes>
</test>
</suite>
H.using regular expressions for test
使用正則表達(dá)式來描述執(zhí)行的方法,Textng.xml腳本如下
<suite name="Regular Exp Suite" verbose="1">
<test name="Regular Exp Test">
<classes>
<class name="test.regularexppackage.RegularExpClass">
<methods>
<include name=".*Test.*" />
</methods>
</class>
</classes>
</test>
</suite>
2.suite標(biāo)簽中的屬性
A.使用 parallel 屬性來讓測(cè)試方法運(yùn)行在不同的線程中。這個(gè)屬性可以帶有如下這樣的值:
<suite name="My suite" parallel="methods" thread-count="5">
<suite name="My suite" parallel="tests" thread-count="5">
<suite name="My suite" parallel="classes" thread-count="5">
<suite name="My suite" parallel="instances" thread-count="5">
parallel="methods": TestNG 會(huì)在不同的線程中運(yùn)行測(cè)試方法,除非那些互相依賴的方法。那些相互依賴的方法會(huì)運(yùn)行在同一個(gè)線程中,并且遵照其執(zhí)行順序。
parallel="tests": TestNG 會(huì)在相同的線程中運(yùn)行相同的<test>標(biāo)記下的所有方法,但是每個(gè)<test>標(biāo)簽中的所有方法會(huì)運(yùn)行在不同的線程中。這樣就允許你把所有非線程安全的類分組到同一個(gè)<test>標(biāo)簽下,并且使其可以利用TestNG多線程的特性的同時(shí),讓這些類運(yùn)行在相同的線程中。
parallel="classes": TestNG 會(huì)在相同線程中相同類中的運(yùn)行所有的方法,但是每個(gè)類都會(huì)用不同的線程運(yùn)行。
parallel="instances": TestNG會(huì)在相同線程中相同實(shí)例中運(yùn)行所有的方法,但是兩個(gè)不同的實(shí)例將運(yùn)行在不同的線程中。
thread-count:允許你為當(dāng)前的執(zhí)行指定可以運(yùn)行的線程數(shù)量。