testNG xml文件詳解


 網上看到一篇整理的非常詳細的xml文件詳解,分享一下:

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
  3 <!--suite(測試套件)為根路徑,僅允許出現1次,是多個test(測試用例)的集合,以下為各屬性含義及取值
  4     @name 必填,標記suite的名稱
  5     @junit 選填,是否以junit模式運行,可選值(true|false) 默認值"false"
  6     @verbose 選填,命令行信息打印等級(與測報內容無關),可在測試代碼注釋中配置,可選值(1|2|3|4|5)
  7     @parallel 選填,是否多線程並發運行測試,可選值(false | methods | tests | classes | instances),默認 "false"
  8     @thread-count 選填,填寫值為正整數,當為並發執行時的線程池數量,默認為"5"
  9     @configfailurepolicy 一旦Before/After Class/Methods這些方法失敗后,是繼續執行測試還是跳過測試;可選值 (skip | continue),默認"skip
 10     @annotations="javadoc" 獲取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk注解
 11     @time-out 為具體執行單元設定一個超時時間,具體參照parallel的執行單元設置;單位為毫秒
 12     @skipfailedinvocationcounts 是否跳過失敗的調用,可選值(true | false),默認"false"
 13     @data-provider-thread-count 並發執行時data-provider的線程池數量,默認為"10"
 14     @object-factory 一個實現IObjectFactory接口的類,用來實例測試對象
 15     @allow-return-values="true" 是否允許返回函數值,可選值(true | false),默認"false"
 16     @preserve-order:順序執行開關,可選值(true | false) "true"
 17     @group-by-instances:是否按實例分組,可選值(true | false) "false"
 18     @guice-stage 支持使用JSR-330的​@Inject注解​來配置運行時提供的實例
 19     @parent-module 和Guice框架有關,只運行一次,創建一個parent injector給所有guice injectors
 20     -->
 21 <suite name="suitename" junit="false" verbose="3" parallel="false" thread-count="5" configfailurepolicy="skip"
 22        annotations="javadoc" time-out="10000" skipfailedinvocationcounts="true" data-provider-thread-count="5"
 23        object-factory="classname" allow-return-values="true" preserve-order="true" group-by-instances="false">
 24 
 25     <!--可以執行多個suite,@path 必填,欲引用的suitefile的絕對路徑-->
 26     <suite-files>
 27         <suite-file path="/path/to/suitefile1"></suite-file>
 28     </suite-files>
 29     <!--全局參數,@name和@value必填,分別為參數名和參數值-->
 30     <parameter name="par1" value="value1"></parameter>
 31     <parameter name="par2" value="value2"></parameter>
 32 
 33     <!--方法選擇器,在suite/test中增加需要額外執行的類(根據父標簽而定),及安排執行優先級-->
 34     <method-selectors>
 35         <method-selector>
 36             <!--
 37                 @name 必填
 38                 @priority 選填
 39                 -->
 40             <selector-class name="classname" priority="1"></selector-class>
 41             <!--
 42                 @language 必填
 43                 -->
 44             <script language="java"></script>
 45         </method-selector>
 46     </method-selectors>
 47 
 48     <!--test定義一次測試執行,以下為各屬性含義及取值
 49         @name:必填,test的名字,測試報告中會有體現
 50         @junit:選填,是否以Junit模式運行,可選值(true | false),默認"false"
 51         @verbose:選填,命令行信息打印等級,不會影響測試報告輸出內容;可選值(1|2|3|4|5)
 52         @parallel:選填,是否多線程並發運行測試;可選值(false | methods | tests | classes | instances),默認 "false"
 53         @thread-count:選填,當為並發執行時的線程池數量,默認為"5"
 54         @annotations:選填,獲取注解的位置,如果為"javadoc", 則使用javadoc注解,否則使用jdk5注解
 55         @time-out:選填,為具體執行單元設定一個超時時間,具體參照parallel的執行單元設置;單位為毫秒
 56         @enabled:選填,設置當前test是否生效,可選值(true | false),默認"true"
 57         @skipfailedinvocationcounts:選填,是否跳過失敗的調用,可選值(true | false),默認"false"
 58         @preserve-order:選填,順序執行開關,可選值(true | false) "true"
 59         @group-by-instances:選填,是否按實例分組,可選值(true | false) "false"
 60         @allow-return-values:選填,是否允許返回函數值,可選值(true | false),默認"false"
 61         -->
 62     <test name="testename" junit="false" verbose="3" parallel="false" thread-count="5" annotations="javadoc"
 63           time-out="10000" enabled="true" skipfailedinvocationcounts="true" preserve-order="true"
 64           allow-return-values="true">
 65         <!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數一致,則覆蓋全局參數取值-->
 66         <parameter name="par1" value="value1"></parameter>
 67         <parameter name="par2" value="value2"></parameter>
 68         <!--搭配class使用,執行class內指定組-->
 69         <groups>
 70             <!--定義執行組名,在run中使用
 71                 @name 必填,組中組的名稱
 72             -->
 73             <define name="xxx">
 74                 <!--定義包含的測試組,測試方法屬於哪個測試組在測試代碼注釋中定義。
 75                     @name 必填,需要包含進組中組的組名
 76                     @description 選填,關於組的描述
 77                     @invocation-numbers 選填,執行次序或者執行次數——TODO
 78                     -->
 79                 <include name="" description="" invocation-numbers=""/>
 80                 <include name="" description="" invocation-numbers=""/>
 81             </define>
 82             <!--運行組中組的配置-->
 83             <run>
 84                 <!--執行指定的組中組,@name必填,與define name一致-->
 85                 <include name=""/>
 86                 <!--排除指定的組中組,@name必填,與define name一致-->
 87                 <exclude name=""/>
 88             </run>
 89             <!--組中組的依賴配置-->
 90             <dependencies>
 91                 <!--配置依賴
 92                     @name 必填,需要依賴其他組的組名,define中設置
 93                     @depends-on 必填,被依賴的組名,define中設置,可以有多個,用空格隔開
 94                     -->
 95                 <group name="" depends-on=""></group>
 96                 <group name="" depends-on=""></group>
 97             </dependencies>
 98         </groups>
 99         <!--配置要執行的類,是多個class的集合-->
100         <classes>
101             <!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數和父標簽的局部參數一致,則覆蓋全局參數和父標簽的局部參數取值-->
102             <parameter name="par1" value="value1"></parameter>
103             <parameter name="par2" value="value2"></parameter>
104             <!--多個methods的集合,@name 必填,對應class的名稱,如com.example.autotest.testcase-->
105             <class name="classname">
106                 <!--要執行的方法,如為空,則執行整個class內包含的全部方法-->
107                 <methods>
108                     <!--局部參數,@name和@value必填,分別為參數名和參數值,如果參數名與全局參數和父標簽的局部參數一致,則覆蓋全局參數和父標簽的局部參數取值-->
109                     <parameter name="par3" value="value3"></parameter>
110                     <!--類內要執行的測試方法名,在測試代碼注釋中配置,如設置inclde,則只執行該方法,其他跳過
111                         @name 必填,執行方法名
112                         @description 選填,方法描述
113                         @invocation-number 選填,宣發執行順序或執行次數——TODO
114                         -->
115                     <include name="" description="" invocation-numbers=""></include>
116                     <!--除了該方法外,類內其他方法都執行,@name 必填,不執行的方法名-->
117                     <exclude name=""></exclude>
118                 </methods>
119                 <methods></methods>
120             </class>
121         </classes>
122         <!--可以執行指定包下面所有類,是多個package的匯聚-->
123         <packages>
124             <!--配置要執行的包,@name 必填,要執行的package名,如com.example.autotest-->
125             <package name="">
126                 <!--包內要執行的測試方法名,在測試代碼注釋中配置,如設置inclde,則只執行該方法,其他跳過
127                     @name 必填,執行方法名
128                     @description 選填,方法描述
129                     @invocation-number 選填,宣發執行順序或執行次數——TODO
130                     -->
131                 <include name="" description="" invocation-numbers=""></include>
132                 <!--除了該方法外,包內其他方法都執行,name 必填,不執行的方法名-->
133                 <exclude name=""></exclude>
134             </package>
135         </packages>
136     </test>
137     <!--設置監聽的類名,可設置多個,class-name 必填,類名,如com.example.autotest.Listener-->
138     <listeners>
139         <listener class-name="classname1"/>
140         <listener class-name="classname2"/>
141     </listeners>
142 </suite>

轉載自 https://testerhome.com/topics/10093?locale=en 發表於 TesterHome


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM