天天看點

testng_xml檔案結構組成及節點屬性說明

TestNG的DTD檢查檔案:http://testng.org/testng-1.0.dtd.PHP

更多testng配置及說明,請移步http://testdoc.org/docmaster?pid=111

  • testng.xml檔案結構:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="suitename" junit="false" verbose="3" parallel="false" thread-count="5" configfailurepolicy="<span style="font-family:Arial;"><span style="font-size: 14px; line-height: 26px;">skip</span></span>" annotations="javadoc" time-out="10000" skipfailedinvocationcounts="true" data-provider-thread-count="5" object-factory="classname" allow-return-values="true">  <!-- name參數為必須 -->
	<suite-files>
		<suite-file path="/path/to/suitefile1"></suite-file>  <!-- path參數為必須 -->
		<suite-file path="/path/to/suitefile2"></suite-file>
	</suite-files>  
	<parameter name="par1" value="value1"></parameter>  <!-- name, value參數為必須 -->
	<parameter name="par2" value="value2"></parameter>
	<method-selectors>
		<method-selector>
			<selector-class name="classname" priority="1"></selector-class> <!-- name參數為必須 -->
			<script language="java"></script>  <!-- language參數為必須 -->
		</method-selector>
	</method-selectors>
	<test name="testename" junit="false" verbose="3" parallel="false" thread-count="5" annotations="javadoc" time-out="10000" enabled="true" skipfailedinvocationcounts="true" preserve-order="true" allow-return-values="true"> <!-- name參數為必須 -->
		<parameter name="par1" value="value1"></parameter>  <!-- name, value參數為必須 -->
		<parameter name="par2" value="value2"></parameter>
		<groups>
			<define name="xxx"> <!-- name參數為必須 -->
				<include name="" description="" invocation-numbers="" />  <!-- name參數為必須 -->
				<include name="" description="" invocation-numbers="" />
			</define>
			<run>
				<include name="" />  <!-- name參數為必須 -->
				<exclude name="" />  <!-- name參數為必須 -->
			</run>
			<dependencies>
				<group name="" depends-on=""></group> <!-- name,depends-on均為參數為必須 -->
				<group name="" depends-on=""></group>
			</dependencies>
		</groups>
		<classes>
			<class name="classname"> <!-- name參數為必須 -->
				<methods>
					<parameter name="par3" value="value3"></parameter>
					<include name="" description="" invocation-numbers=""></include>
					<exclude name=""></exclude>
				</methods>
				<methods></methods>
			</class>
		</classes>	
		<packages>
			<package name="" />  <!-- name參數為必須 -->
			<package name="">
				<include name="" description="" invocation-numbers=""></include>
				<exclude name=""></exclude>
			</package>
		</packages>
		<listeners>
			<listener class-name="classname1" />  <!-- name參數為必須 -->
			<listener class-name="classname2" />
		</listeners>
	</test>
	<test></test>
</suite> 
           
  • testng.xml檔案節點屬性說明:
suite屬性說明:
@name: suite的名稱,必須參數    
@junit:是否以Junit模式運作,可選值(true | false),預設"false"
@verbose:指令行資訊列印等級,不會影響測試報告輸出内容;可選值(1|2|3|4|5) 
@parallel:是否多線程并發運作測試;可選值(false | methods | tests | classes | instances),預設 "false"
@thread-count:當為并發執行時的線程池數量,預設為"5"
@configfailurepolicy:一旦Before/After Class/Methods這些方法失敗後,是繼續執行測試還是跳過測試;可選值 (skip | continue),預設"skip"
@annotations:擷取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk注解
@time-out:為具體執行單元設定一個逾時時間,具體參照parallel的執行單元設定;機關為毫秒
@skipfailedinvocationcounts:是否跳過失敗的調用,可選值(true | false),預設"false"
@data-provider-thread-count:并發執行時data-provider的線程池數量,預設為"10"
@object-factory:一個實作IObjectFactory接口的類,用來執行個體測試對象
@allow-return-values:是否允許傳回函數值,可選值(true | false),預設"false"
@preserve-order:順序執行開關,可選值(true | false) "true"
@group-by-instances:是否按執行個體分組,可選值(true | false) "false"

test屬性說明:
@name:test的名字,必選參數;測試報告中會有展現
@junit:是否以Junit模式運作,可選值(true | false),預設"false"
@verbose:指令行資訊列印等級,不會影響測試報告輸出内容;可選值(1|2|3|4|5) 
@parallel:是否多線程并發運作測試;可選值(false | methods | tests | classes | instances),預設 "false"
@thread-count:當為并發執行時的線程池數量,預設為"5"
@annotations:擷取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk5注解
@time-out:為具體執行單元設定一個逾時時間,具體參照parallel的執行單元設定;機關為毫秒
@enabled:設定目前test是否生效,可選值(true | false),預設"true" 
@skipfailedinvocationcounts:是否跳過失敗的調用,可選值(true | false),預設"false"
@preserve-order:順序執行開關,可選值(true | false) "true"
@group-by-instances:是否按執行個體分組,可選值(true | false) "false"
@allow-return-values:是否允許傳回函數值,可選值(true | false),預設"false"