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

 网上看到一篇整理的非常详细的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

猜你喜欢

转载自www.cnblogs.com/peachh/p/12013975.html