ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

TestNG最常用的注解

2026/8/22 16:29:35 拓冰建站 浏览量
TestNG最常用的注解 TestNG使用它最常用的注解1. 注解Test标识方法是一个基于TestNG的测试用例常用属性enabled false标识它不是一个测试用例priority -1默认的测试用例的执行顺序是基于方法名的ASCII码priority可以改变用例的执行顺序值越小优先级越高。invocationCount 2控制测试用例的执行次数dependsOnMethods{方法名}解决测试用例之间的依赖关系2. 前后置注解例如连接数据库、打开浏览器Before 注解BeforeSuiteBeforeTestBeforeClassBeforeMethodAfter 注解AfterSuiteAfterTestAfterClassAfterMethod3. TestNG 的断言Assert.assertEquals(登陆成功,登陆成功);Assert.assertTrue(true);常用断言说明assertEquals用于校验实际结果与预期结果是否一致。Assert.assertEquals(actual,expected);示例Assert.assertEquals(登陆成功,登陆成功);assertTrue用于校验条件是否为true。Assert.assertTrue(condition);示例Assert.assertTrue(true);4. 批量执行所有的测试用例TestNG 配置文件 testng.xml示例?xml version1.0 encodingUTF-8?!DOCTYPEsuiteSYSTEMhttp://testng.org/testng-1.0.dtdsuitename码尚商城testname注册模块classesclassnamecom.api.register.TestRegister//classes/testtestname登陆模块classesclassnamecom.api.login.TestLogin2/classnamecom.api.login.TestLogin//classes/test/suite说明suite测试套件可以包含多个测试模块。test测试模块用于组织一组测试类。classes定义当前模块下需要执行的测试类。class指定具体执行的 TestNG 测试类。运行testng.xml后TestNG 会按照配置批量执行所有测试用例。5. TestNG 实现数据驱动正例和反例1. 第一种方式第一步在 testng.xml 中定义参数的值testname登陆模块classesclassnamecom.api.login.TestLogin2/parameternameusernamevalueadmin/parameternamepasswordvalue123//classes/test第二步在测试用例上面通过以下注解来引入参数Parameters(value{username,password})2. 第二种方式packagecom.api.login;importorg.testng.annotations.DataProvider;importorg.testng.annotations.Test;publicclassTestLogin2{// 测试登录的用例Test(dataProvidergetData)publicvoidtestLogin2(Stringusername,Stringpassword){System.out.println(用户名username密码password);}// 获取数据方法DataProviderpublicObject[][]getData(){Object[][]data{{admin,123},{李四,123},{王五,123}};returndata;}}说明DataProviderTestNG 提供的数据驱动注解用于为测试方法提供测试数据。Test(dataProvider getData)指定当前测试方法使用getData()方法返回的数据进行参数化执行。Test(dataProvidergetData)数据格式DataProvider返回值必须是二维数组Object[][]data{{admin,123},{李四,123},{王五,123}};每一行代表一组测试数据usernamepasswordadmin123李四123王五123执行结果测试方法会执行 3 次用户名admin密码123 用户名李四密码123 用户名王五密码123数据驱动测试优点测试逻辑与测试数据分离减少重复代码提高测试用例复用性方便扩展大量测试数据常用于登录、注册、查询等场景6. TestNG Allure 生成精美的测试报告第一步在 pom.xml 里面增加 Allure 的依赖第三方库!-- allure --!-- aspectjweaver maven 坐标 --!-- 构建 allure 的插件AOP 拦截测试结果 --第二步生成临时 JSON 报告直接运行testng.xml即可。注意这里有一个问题每次执行时不会自动清空原来的 JSON 报告因此可能会导致历史数据被累计到新报告中。第三步生成临时 JSON 报告以及 HTML 格式的 Allure 报告并自动清理旧数据通过 Maven 命令运行1. 清理并执行测试mvn cleantest说明先清空旧的测试结果数据再执行测试用例生成最新的 Allure JSON 数据2. 生成 Allure 报告mvn io.qameta.allure:allure-maven:serve说明根据测试结果生成 Allure HTML 报告自动启动本地 Web 服务在浏览器中打开测试报告执行流程执行测试 ↓ 生成 allure-resultsJSON 数据 ↓ mvn io.qameta.allure:allure-maven:serve ↓ 生成 HTML 报告 ↓ 浏览器展示测试结果Allure 优势界面美观支持测试步骤展示支持失败截图支持附件上传支持趋势分析支持 TestNG/JUnit/Pytest 等主流测试框架支持 CI/CD 集成Jenkins、GitLab CI 等【参考】https://www.bilibili.com/video/BV1G38iz2ErT【参考】https://www.cnblogs.com/df888/p/15803356.html【参考】https://testng.org/