testng使用详解 (4)

新建一个自定义 xml 配置文件 tester.xml (maven项目将该文件创建在 resource 目录下)

<?xml version="1.0" encoding="UTF-8"?> <!-- @BeforeSuite --> <suite> <!-- @BeforeTest --> <test> <classes> <class /> <class /> </classes> </test> <!-- @AfterTest --> <!-- @BeforeTest --> <test> <classes> <class /> </classes> </test> <!-- @AfterTest --> </suite> <!-- @AfterSuite -->

运行结果:

testng使用详解

从这个结果显示出注释的作用位置。其中 @BeforeGroups 和 @AfterGroups 的作用范围是可以跨类的,但类必须是在同一个测试用例(<test>标签)范围内;

这些标签的运行先后顺序可以总结为:

@BeforeSuite->@BeforeTest->@BeforeClass->{@BeforeMethod->@Test->@AfterMethod}->@AfterClass->@AfterTest->@AfterSuite(其中{}内的与多少个@Test,就循环执行多少次)。

四、testng.xml 配置文件详解 1、配置文件结构(较详细): <?xml version="1.0" encoding="UTF-8"?> <!--添加dtd约束文件,标签自动提示--> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite> <suite-files> <suite-file path=""></suite-file> </suite-files> <parameter value=""></parameter> <method-selectors> <method-selector> <selector-calss></selector-calss> </mehod-selector> </method-selectors> <test> <parameter value=""><parameter> <groups> <define> <include/> <exclude/> </define> <run> <include/> <exclude/> </run> </groups> <classes> <class> <mehods> <parameter value=""></parameter> <include></include> <exclude></exclude> </methods> </class> <class></class> </classes> <packages> <package> <include></include> <exclude></exclude> </package> </packages> <listeners> <listener class-name=""/> </listenters> </test> <test></test> </suite> 2、配置文件标签说明 <suite>标签

说明:一个xml文件只能有一个<suite>, 是一个xml文件的根级

<suite> 由 <test> 和 <parameters> 组成

标签属性说明:

属性 说明 使用方法 参数值
name   必选项,的名字,将出现在reports里   name="XXX"   suite名字  
junit   是否执行Junit模式(识别setup()等)   junit="true"   true和false,默认false  
verbose   控制台输出的详细内容等级,0-10级(0无,10最详细)   verbose="5"   0到10  
parallel   是否在不同的线程并行进行测试,要与thread-count配套使用   parallel="mehods"   详见表格下内容,默认false  
parent-module   和Guice框架有关,只运行一次,创建一个parent injector给所有guice injectors      
guice-stage   和Guice框架有关   guice-stage="DEVELOPMENT"   DEVELOPMENT,PRODUCTION,TOOL,默认"DEVELOPMENT"  
configfailurepolicy   测试失败后是再次执行还是跳过,值skip和continue   configfailurepolicy="skip"   skip、continue,默认skip  
thread-count   与parallel配套使用,线程池的大小,决定并行线程数量   thread-count="10"   整数,默认5  
annotations   获取注解,值为javadoc时,使用JavaDoc的注释;否则用JDK5注释   annotations="javadoc"   javadoc  
time-out   设置parallel时,终止执行单元之前的等待时间(毫秒)   time-out="10000"   整数,单位毫秒  
skipfailedinvocationcounts   是否跳过失败的调用   skipfailedinvocationcounts="true"   true和false,默认false  
data-provider-thread-count   并发时data-provider的线程池数量   data-provider-thread-count="5"   整数  
object-factory   一个实现IObjectFactory接口的类,实例化测试对象   object-factory="classname"   类名  
allow-return-values   是否允许返回函数值   all-return-values="true"   true和false  
preserve-order   是否按照排序执行   preserve-order="true"   true和false,默认true  
group-by-instances   按照实例分组   group-by-instances="true"   true和false,默认false  

parallel 属性详细说明

该参数的值false,methods,tests,classes,instances。默认false

parallel 必须和 thread-count 配套使用,否则相当于无效参数,thread-count 决定了并行测试时开启的线程数量

parallel="mehods" TestNG将并行执行所有的测试方法在不同的线程里

parallel="tests" TestNG将并行执行在同一个<test>下的所有方法在不同线程里

parallel="classes" TestNG将并行执行在相同<class>下的方法在不同线程里

parallel="instances" TestNG将并行执行相同实例下的所有方法在不同的县城里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzgxdw.html