TestNG的XML配置说明

Posted ITester测试集中营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TestNG的XML配置说明相关的知识,希望对你有一定的参考价值。

Test.xml是TestNG框架最终的组成部分,可以更方便的管理和执行测试用例,满足各种测试场景的需要,常见的测试套件组合有以下几种方式



方法一:指定不同的组,执行用例

<suite name="登陆用例级" verbose="1" preserve-order="true" parallel="false"> <test name="正常流程"> <!-- name参数为必须 --> <classes> <class name="com.testng.cases.JuZiCase"> <!-- name参数为必须 --> <groups> <run> <include name="group01"/> </run> </groups> </class> </classes> </test> <test name="按组执行"> <groups> <run> <include name="group2" /> </run> </groups> <classes> <class name="sample.testng.TestNGGroupsTest1" /> <class name="com.testng.cases.JuZiCase01" /> </classes> </test>    <listeners> <listener class-name="com.testng.config.ExtentTestNGIReporterListener" /> <!-- 监听生成测试报告 --> </listeners></suite>

方法二:指定测试类和方法,执行用例

<suite name="登陆用例级" verbose="1" preserve-order="true" parallel="false"> <test name="异常流程"> <!-- name参数为必须 --> <classes> <class name="com.testng.cases.JuZiCase"> <!-- name参数为必须 --> <methods name="失败的"> <include name="testFail"></include> <!-- 包含的用例 --> <exclude name="funtest"></exclude><!-- 不包含的用例 --> </methods> </class> </classes> </test></suite>

方法三:通过配置文件传递参数,执行用例

@Test@Parameters("test1")public void ParaTest(String test1){System.out.println("This is " + test1);}
 
<suite name="接口测试"><!-- name参数为必须 --> <parameter name="test1" value="Tank" /> <parameter name="test1" value="OK" /> <test name="test12"> <classes> <class name="com.testng.cases.JuZiCase" /> </classes> </test></suite>

方法四:多个testng.xml文件,执行用例

<suite name="测试1"> <!--reportng测试报告--> <listeners > <listener class-name="com.testng.config.ExtentTestNGIReporterListener" /> <!-- 监听生成测试报告 --> </listeners> <suite-files > <!--模块1--> <suite-file path="xx.xml"></suite-file> <!--模块2--> <suite-file path="xx.xml"></suite-file> </suite-files></suite>

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"


以上是关于TestNG的XML配置说明的主要内容,如果未能解决你的问题,请参考以下文章

maven相关说明,以及使用Testng相关

testng.xml文件的配置

TestNG基础教程 - IntelliJ IDEA中配置TestNG.xml, 查看TestNG Report

testng教程之testng.xml的配置和使用,以及参数传递

testng教程之testng.xml的配置和使用,以及参数传递(多线程执行)

测试框架-TestNG-xml配置文件解决中文乱码