TestNG XML 標籤說明

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!--suite(測試套件)爲根路徑,僅允許出現1次,是多個test(測試用例)的集合,以下爲各屬性含義及取值
    @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", 則使用javadoc註解,否則使用jdk註解
    @time-out 爲具體執行單元設定一個超時時間,具體參照parallel的執行單元設置;單位爲毫秒
    @skipfailedinvocationcounts 是否跳過失敗的調用,可選值(true | false),默認"false"
    @data-provider-thread-count 併發執行時data-provider的線程池數量,默認爲"10"
    @object-factory 一個實現IObjectFactory接口的類,用來實例測試對象
    @allow-return-values="true" 是否允許返回函數值,可選值(true | false),默認"false"
    @preserve-order:順序執行開關,可選值(true | false) "true"
    @group-by-instances:是否按實例分組,可選值(true | false) "false"
    @guice-stage 支持使用JSR-330的​@Inject註解​來配置運行時提供的實例
    @parent-module 和Guice框架有關,只運行一次,創建一個parent injector給所有guice injectors
    -->
<suite name="suitename" junit="false" verbose="3" parallel="false" thread-count="5" configfailurepolicy="skip"
       annotations="javadoc" time-out="10000" skipfailedinvocationcounts="true" data-provider-thread-count="5"
       object-factory="classname" allow-return-values="true" preserve-order="true" group-by-instances="false">

    <!--可以執行多個suite,@path 必填,欲引用的suitefile的絕對路徑-->
    <suite-files>
        <suite-file path="/path/to/suitefile1"></suite-file>
    </suite-files>
    <!--全局參數,@name和@value必填,分別爲參數名和參數值-->
    <parameter name="par1" value="value1"></parameter>
    <parameter name="par2" value="value2"></parameter>

    <!--方法選擇器,在suite/test中增加需要額外執行的類(根據父標籤而定),及安排執行優先級-->
    <method-selectors>
        <method-selector>
            <!--
                @name 必填
                @priority 選填
                -->
            <selector-class name="classname" priority="1"></selector-class>
            <!--
                @language 必填
                -->
            <script language="java"></script>
        </method-selector>
    </method-selectors>

    <!--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"
        -->
    <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和@value必填,分別爲參數名和參數值,如果參數名與全局參數一致,則覆蓋全局參數取值-->
        <parameter name="par1" value="value1"></parameter>
        <parameter name="par2" value="value2"></parameter>
        <!--搭配class使用,執行class內指定組-->
        <groups>
            <!--定義執行組名,在run中使用
                @name 必填,組中組的名稱
            -->
            <define name="xxx">
                <!--定義包含的測試組,測試方法屬於哪個測試組在測試代碼註釋中定義。
                    @name 必填,需要包含進組中組的組名
                    @description 選填,關於組的描述
                    @invocation-numbers 選填,執行次序或者執行次數——TODO
                    -->
                <include name="" description="" invocation-numbers=""/>
                <include name="" description="" invocation-numbers=""/>
            </define>
            <!--運行組中組的配置-->
            <run>
                <!--執行指定的組中組,@name必填,與define name一致-->
                <include name=""/>
                <!--排除指定的組中組,@name必填,與define name一致-->
                <exclude name=""/>
            </run>
            <!--組中組的依賴配置-->
            <dependencies>
                <!--配置依賴
                    @name 必填,需要依賴其他組的組名,define中設置
                    @depends-on 必填,被依賴的組名,define中設置,可以有多個,用空格隔開
                    -->
                <group name="" depends-on=""></group>
                <group name="" depends-on=""></group>
            </dependencies>
        </groups>
        <!--配置要執行的類,是多個class的集合-->
        <classes>
            <!--局部參數,@name和@value必填,分別爲參數名和參數值,如果參數名與全局參數和父標籤的局部參數一致,則覆蓋全局參數和父標籤的局部參數取值-->
            <parameter name="par1" value="value1"></parameter>
            <parameter name="par2" value="value2"></parameter>
            <!--多個methods的集合,@name 必填,對應class的名稱,如com.example.autotest.testcase-->
            <class name="classname">
                <!--要執行的方法,如爲空,則執行整個class內包含的全部方法-->
                <methods>
                    <!--局部參數,@name和@value必填,分別爲參數名和參數值,如果參數名與全局參數和父標籤的局部參數一致,則覆蓋全局參數和父標籤的局部參數取值-->
                    <parameter name="par3" value="value3"></parameter>
                    <!--類內要執行的測試方法名,在測試代碼註釋中配置,如設置inclde,則只執行該方法,其他跳過
                        @name 必填,執行方法名
                        @description 選填,方法描述
                        @invocation-number 選填,宣發執行順序或執行次數——TODO
                        -->
                    <include name="" description="" invocation-numbers=""></include>
                    <!--除了該方法外,類內其他方法都執行,@name 必填,不執行的方法名-->
                    <exclude name=""></exclude>
                </methods>
                <methods></methods>
            </class>
        </classes>
        <!--可以執行指定包下面所有類,是多個package的匯聚-->
        <packages>
            <!--配置要執行的包,@name 必填,要執行的package名,如com.example.autotest-->
            <package name="">
                <!--包內要執行的測試方法名,在測試代碼註釋中配置,如設置inclde,則只執行該方法,其他跳過
                    @name 必填,執行方法名
                    @description 選填,方法描述
                    @invocation-number 選填,宣發執行順序或執行次數——TODO
                    -->
                <include name="" description="" invocation-numbers=""></include>
                <!--除了該方法外,包內其他方法都執行,name 必填,不執行的方法名-->
                <exclude name=""></exclude>
            </package>
        </packages>
    </test>
    <!--設置監聽的類名,可設置多個,class-name 必填,類名,如com.example.autotest.Listener-->
    <listeners>
        <listener class-name="classname1"/>
        <listener class-name="classname2"/>
    </listeners>
</suite>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章