Textng.xml是TestNG的配置文件始绍,用來定義TestNG中的test suit和test胜茧。Textng.xml在test suit中提供了很多不同的選擇室叉,包括包抑片,類和依賴測試方法卵佛,他也允許我們在一個單一的測試環(huán)境中運(yùn)行多個test,也允許我們在多線程的環(huán)境中運(yùn)行多個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
在一個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í)行某個包名包含某個關(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
排除某個包焰枢,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
排除某個特定的方法蚓峦,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 屬性來讓測試方法運(yùn)行在不同的線程中济锄。這個屬性可以帶有如下這樣的值:
<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 會在不同的線程中運(yùn)行測試方法暑椰,除非那些互相依賴的方法。那些相互依賴的方法會運(yùn)行在同一個線程中荐绝,并且遵照其執(zhí)行順序一汽。
parallel="tests": TestNG 會在相同的線程中運(yùn)行相同的<test>標(biāo)記下的所有方法,但是每個<test>標(biāo)簽中的所有方法會運(yùn)行在不同的線程中低滩。這樣就允許你把所有非線程安全的類分組到同一個<test>標(biāo)簽下角虫,并且使其可以利用TestNG多線程的特性的同時沾谓,讓這些類運(yùn)行在相同的線程中。
parallel="classes": TestNG 會在相同線程中相同類中的運(yùn)行所有的方法戳鹅,但是每個類都會用不同的線程運(yùn)行均驶。
parallel="instances": TestNG會在相同線程中相同實(shí)例中運(yùn)行所有的方法,但是兩個不同的實(shí)例將運(yùn)行在不同的線程中枫虏。
thread-count:允許你為當(dāng)前的執(zhí)行指定可以運(yùn)行的線程數(shù)量妇穴。