TestNG简介
- TestNG是一个单元测试框架,它提供了注解来帮助管理测试用例
- 主要作用:发现测试用例、执行测试用例、判断测试结果、生成测试报告
配置TestNG的依赖
配置TestNG的依赖通常是通过构建工具如Maven或Gradle来完成的。
Maven介绍
- 第三方库
- 大型仓库
配置TestNG依赖
点击查看代码
<dependencies>
<!-- 其他依赖项 -->
<!-- TestNG依赖项 -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
<scope>test</scope>
</dependency>
<!-- 如果你的项目还使用了JUnit(比如用于某些遗留代码),确保不要包含JUnit的依赖项在test scope中,
因为TestNG内部已经集成了JUnit的兼容层,但如果你确实需要JUnit的某些功能,
请确保它的版本与TestNG兼容 -->
</dependencies>
TestNG常用注解
注解底层原理:代码对一些方法进行了封装,例如main方法,可以将注解下方的方法传入,进行运行
1、注解:@Test:标识方法是一个基于TestNG的测试用例
常用属性
package com.api.login;
import org.testng.annotations.Test;
public class TestLogin {
//标识它不是一个测试用例
@Test(enabled = false)
public void TestLogin001(){
System.out.println("测试登录的测试用例");
}
//改变执行用例的顺序,值越小优先级越高
@Test(priority = 1)
public void TestLogin002(){
System.out.println("测试登录的测试用例002");
}
//控制测试用例执行的次数
@Test(invocationCount = 2)
public void TestLogin003()
{ System.out.println("执行2次测试登录的测试用例");
}
//解决测试用例之间的依赖关系
@Test(dependsOnMethods = {"TestLogin003"})
public void TestLogin004()
{ System.out.println("执行依赖情况");
}
}
常用
前置注解
@BeforeSuite:该方法将在该套件(Suite)中的所有测试运行之前执行一次。一个套件对应一个顶级模块,通常结合testng.xml文件中的<suite>或<suite-file>使用。
@BeforeTest:该方法将在属于<test>标签内的类的所有测试方法运行之前执行一次。一个<test>标签对应一个子模块。
@BeforeGroups:该方法将在其之前运行的组的列表中的第一个测试方法之前执行。可以指定组名来限制该方法在特定组之前运行。 @BeforeClass:该方法将在调用当前类中的第一个测试方法之前执行一次,并且只执行一次。
@BeforeMethod:该方法将在当前类中的每个测试方法运行之前执行。
package com.api.login;
import org.testng.annotations.*;
public class TestLogin {
@BeforeSuite
public void Test001(){
System.out.println("测试套件前置,相当于整个项目");
}
@BeforeTest
public void Test002(){
System.out.println("测试模块前置,相当于一个模块");
}
@BeforeClass
public void Test003(){
System.out.println("测试类前置,相当于一个子模块");
}
@BeforeMethod
public void Test004(){
System.out.println("测试用例套件,相当于一个功能");
}
@Test
public void show1(){
System.out.println("展示:");
}
@Test
public void show2(){
System.out.println("展示:");
}
@Test
public void show3(){
System.out.println("展示:");
}
}
后置注解
@AfterSuite:该方法将在该套件中的所有测试运行之后执行一次。
@AfterTest:该方法将在属于<test>标签内的类的所有测试方法运行之后执行一次。 @AfterGroups:该方法将在其后运行的组的列表中的最后一个测试方法之后执行。可以指定组名来限制该方法在特定组之后运行。
@AfterClass:该方法将在当前类中的所有测试方法运行之后执行一次,并且只执行一次。
@AfterMethod:该方法将在当前类中的每个测试方法运行之后执行。