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/

相关新闻

最新新闻

17、驱动性能分析与优化--网络驱动性能优化

17、驱动性能分析与优化--网络驱动性能优化

17.1 NAPI:中断与轮询的平衡艺术 NAPI(New API)是 Linux 网络子系统中最早引入的优化机制之一。它的核心思想很简单:高流量时不要每个包都触发中断,改成轮询。 为什么这么做?中断虽然响应快,但开销大——保存上下文、执行中断处理函数、恢复上下文,一套下来几百个 CP…

2026/8/22 17:29:59
注意啦!!2026年(下半年)工程专业技术职称水平能力测试考试通知已出

注意啦!!2026年(下半年)工程专业技术职称水平能力测试考试通知已出

一、东湖高新区2026年(下半年)工程专业技术职称水平能力测试时间:⏰时间:2026年8月30日(周日)🚀准考证打印时间:2026年8月24日12:00至8月30日上午8:30二、东湖高新区2026年&#xff…

2026/8/22 17:29:59
5 步搞定 nvidia_gpu_exporter:GPU 监控从部署到 Grafana 告警

5 步搞定 nvidia_gpu_exporter:GPU 监控从部署到 Grafana 告警

5 步搞定 nvidia_gpu_exporter:GPU 监控从部署到 Grafana 告警 【免费下载链接】nvidia_gpu_exporter Nvidia GPU exporter for prometheus using nvidia-smi binary OR using NVML 项目地址: https://gitcode.com/gh_mirrors/nv/nvidia_gpu_exporter nvidia…

2026/8/22 17:29:59
COMAP数学建模竞赛AI使用政策全解析:合规边界与实战工作流

COMAP数学建模竞赛AI使用政策全解析:合规边界与实战工作流

1. 项目概述:当数学建模竞赛遇上生成式AI如果你是一名数学建模竞赛的参与者或指导老师,最近一定被一个话题刷屏了:在COMAP(美国大学生数学建模竞赛,MCM/ICM的主办方)的比赛中,到底能不能用ChatG…

2026/8/22 17:29:59
计算机考研408虚拟存储器真题精讲:从地址转换到实战解析

计算机考研408虚拟存储器真题精讲:从地址转换到实战解析

在准备计算机考研408的过程中,虚拟存储器相关的真题是操作系统部分的重难点,尤其是涉及虚拟地址到物理地址转换的计算题,常常让考生感到棘手。本文将以2011年第44题为核心,深入剖析虚拟存储器的核心概念、地址转换机制&#xff0c…

2026/8/22 17:29:59
Java大厂面试通关:核心备战与实战策略

Java大厂面试通关:核心备战与实战策略

1. 项目概述:Java大厂面试通关实录去年秋招季,我经历了阿里三面、京东四面,最终斩获两家大厂offer。作为非985背景的普通本科生,这段经历让我深刻体会到——技术实力和面试策略同样重要。本文将完整还原我的备战路线、面试真题解析…

2026/8/22 17:24:58