Java自动化测试(TestNg 10)
TestNG
介绍
TestNG是一个测试框架,旨在简化广泛的测试需求,从单元测试(将一个类与其他类隔离测试)到集成测试(对由多个类,多个程序包甚至几个外部框架组成的整个系统进行测试),例如 应用程序服务器)。
可以看出TestNG致力于简化测试流程。
导入Maven
1 | <!-- https://mvnrepository.com/artifact/org.testng/testng --> |
一个简单的例子
Test : 使用此注解的方法或者类将被TestNG识别并运行。
1 | package com.zhongxin.day01; |
运行结果
属性名
属性名 | 描述 |
---|---|
alwaysRun | 设置为true时,无论什么情况都会运行 |
dataProvider | 数据提供者的名称 |
dataProviderClass | 如果未指定,将在当前测试方法的类或其父类之一上查找数据提供者。 如果指定了此属性,则数据提供者方法在指定的类上必须是静态的。 |
dependsOnGroups | 依赖的组列表 |
dependsOnMethods | 依赖的方法列表 |
description | 说明 |
enabled | 设置为false时失效 |
expectedExceptions | 预期测试方法将引发的异常列表。 如果未引发任何异常或与该列表中的异常不同,则此测试将标记为失败。 |
groups | 所属组 |
invocationCount | 调用次数 |
invocationTimeOut | 所有invocationCount的累积超时时间。 注意:如果未指定invocationCount,则将忽略此属性。 |
priority | 此测试方法的优先级 |
successPercentage | 该方法预期成功的百分比 |
singleThreaded | 如果设置为true,则即使当前正在使用parallel =“ methods”运行测试,也保证该测试类上的所有方法都可以在同一线程中运行。 此属性只能在类级别使用,如果在方法级别使用,则将被忽略。 |
timeOut | 超时时间 |
threadPoolSize | 此方法的线程池的大小。 该方法将从invocationCount指定的多个线程中调用。 注意:如果未指定invocationCount,则忽略此属性 |
threadPoolSize和invocationCount
1 | package com.zhongxin.day01; |
同时运行多个测试函数
新建一个testng.xml
1 |
|
前置条件,后置条件
注解 | 描述 |
---|---|
@BeforeSuite @AfterSuite | 带注释的方法将在该套件中的所有测试运行之前运行。 带注释的方法将在该套件中的所有测试运行之后运行。 |
@BeforeTest @AfterTest | 带注释的方法将在运行属于标记内的类的任何测试方法之前运行。 带注释的方法将在运行属于标记内的类的任何测试方法之后运行。 |
@BeforeGroups @AfterGroups | 此配置方法将在其之前运行的组的列表。 保证此方法可以在调用属于任何一个组的第一个测试方法之前运行。 此配置方法将在其之前运行的组的列表。 保证此方法可以在属于任何一个组的测试方法运行之后运行。 |
@BeforeClass @AfterClass | 带注释的方法将在调用当前类中的第一个测试方法之前运行。 带注释的方法将在当前类中的所有测试方法运行之后运行。 |
@BeforeMethod @AfterMethod | 带注释的方法将在每个测试方法之前运行。 带注释的方法将在每个测试方法之后运行。 |