16. 基于自动化–JAVA之TestNG
一、TestNG
设计测试用例执行流程的测试框架,需要倒入jar包
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> </dependency>
testNG.xml
在项目的根目录底下创建testng.xml
一个suite(套件)由一个或多个测试构成
一个test(测试)是由多个类组成
class(类)由一个或者多个方法组成
parameter:定义参数
执行方式:右键testng.xml–>run testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="register" preserve-order="true">
<classes>
<class name="demo.DataProviderDemo"/>
</classes>
</test>
</suite>
二、常用注解
1.配置类型注解
@BeforeSuite/@AfterSuite:在某个测试套件(suite)开始之前运行/在某个测试套件所有测试方法执行之后运行
@BeforeTest/@AfterTest:在某个测试(test)开始之前运行/在某个测试下的所有测试类中的测试方法执行之后运行
@BeforeClass/@AfterClass:在某个测试类(class)开始之前运行/在某个测试类中的所有测试方法执行之后运行
@BeforeMehod/@AfterMethod:在某个测试方法(Method)之前运行/在某个测试方法执行之后运行
2.非配置类型注解
@Test:标记测试方法
@Parameter:注入testng.xml中定义的parameter参数
@DataProviders:数据提供者(同时提供多组测试数据),测试方法上引用数据提供者时需要指定数据提供者的名字,默认为方法名
三、依赖测试
dependsOnMehods:测试方法依赖于某方法
四、忽略测试
测试过程中,因某些原因,暂时不希望执行,就可以添加忽略标签来跳过此方法的运行
@Test(enabled=false)
五、超时测试
表示如果单元测试花费的时间超过指定的毫秒数,则TestNG将中止执行并记录失败
@Test(timeout=10000)
六、分组测试:只想执行个别或者某一部分的测试用例
测试用例方法执行groups
在testng.xml中指定相应测试类
在test的groups里面指定run下要执行的分组
当测试用例越来越多,有些分组不想执行,设置方式也是一样:在tet的groups里面指定run下不需要执行的分组