testNG(一)常用注解和测试场景
testng.xml配置 https://www.cnblogs.com/wangyinghao/p/10133109.html
官网文档 https://testng.org/doc/documentation-main.html
常用注解
suite
@BeforeSuite,在该套件的所有测试都运行在注释的方法之前,仅运行一次。
@AfterSuite,在该套件的所有测试都运行在注释方法之后,仅运行一次。
一个测试套件里可以有多个测试用例 @test,可以测试包package,测试组group,测试类class,测试单个方法
class
@BeforeClass,在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。
@AfterClass,在调用当前类的第一个测试方法之后运行,注释方法仅运行一次
test
@Test,标记一个测试方法
@BeforeTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。
@AfterTest,注释的方法将在属于<test>标签内的类的所有测试方法运行之后运行。
method
@BeforeMethod,注释方法将在每个测试方法之前运行。
@AfterMethod,注释方法将在每个测试方法之后运行。
@DataProvider
标记一种方法来提供测试方法的数据。 注释方法必须返回一个Object [] [],其中每个Object []可以被分配给测试方法的参数列表。 要从该DataProvider接收数据的@Test方法需要使用与此注释名称相等的dataProvider名称。
其他场景测试
1. testNG异常测试
测试中,有时候我们期望某些代码抛出异常。比如用例中的异常流和无效等价类,抛出的异常只能是Java中的Exception类中的异常类,超出Exception类中的异常,不会报错,如
由于在处理字符串转换成整型的时候会抛NumberFormatException异常,此时加了异常测试处理,testNG认为测试通过
expectedExceptions属性可以加多个异常,expectedExceptions = { IOException.class, NullPointerException.class }
2.TestNG忽略测试
有时候测试用例还没准备好, 可以给测试用例加上@Test(enable = false),来禁用此测试用例
3.TestNG依赖测试
使用dependOnMethods来实现依赖测试。 如果依赖方法失败,则将跳过所有后续测试方法。
@Test(dependsOnMethods = { "method1" })
4.TestNG超时测试
@Test(timeout=数字),单位为ms,超过这个时间就会认为测试没有通过
TestNG测试结果报告
IDAE默认关闭测试报告功能
开启:Run-->edit configurations-->configuration-->listeners-->勾选use default reporters
文件位置:测试报告位于 "test-output" 目录下index.html。每次测试后,结果都会更新,所以每次测试后就必须去文件记录结果