TestNG最常用的注解

TestNG测试框架详解 TestNG是一个功能强大的Java测试框架,支持单元测试、集成测试等多种测试场景。本文详细介绍了TestNG的核心功能,包括Maven依赖配置、常用注解(如@Test、@BeforeMethod等)、测试方法属性设置(超时、优先级)、内置报告查看方式以及丰富的断言方法。特别讲解了参数化测试的两种实现方式:通过testng.xml配置参数和使用DataProvider动态提供测试数据,并对比了它们的适用场景。TestNG还支持软断言、测试分组等高级特性,配合testng.xml配置文件可灵活管理测试套件,是 阅读详情

TestNG使用它最常用的注解

1. 注解:@Test:标识方法是一个基于TestNG的测试用例

常用属性:

enabled = false 标识它不是一个测试用例

priority = -1 默认的测试用例的执行顺序是基于方法名的ASCII码,priority可以改变用例的执行顺序,值越小优先级越高。

invocationCount = 2 控制测试用例的执行次数

dependsOnMethods={"方法名"} 解决测试用例之间的依赖关系

2. 前后置注解

例如:连接数据库、打开浏览器

Before 注解

  • @BeforeSuite
  • @BeforeTest
  • @BeforeClass
  • @BeforeMethod

After 注解

  • @AfterSuite
  • @AfterTest
  • @AfterClass
  • @AfterMethod

3. 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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="码尚商城">

    <test name="注册模块">
        <classes>
            <class name="com.api.register.TestRegister" />
        </classes>
    </test>

    <test name="登陆模块">
        <classes>
            <class name="com.api.login.TestLogin2" />
            <class name="com.api.login.TestLogin" />
        </classes>
    </test>

</suite>

说明

  • <suite>:测试套件,可以包含多个测试模块。
  • <test>:测试模块,用于组织一组测试类。
  • <classes>:定义当前模块下需要执行的测试类。
  • <class>:指定具体执行的 TestNG 测试类。
  • 运行 testng.xml 后,TestNG 会按照配置批量执行所有测试用例。
    在这里插入图片描述

5. TestNG 实现数据驱动(正例和反例)

1. 第一种方式

第一步:在 testng.xml 中定义参数的值

<test name="登陆模块">

    <classes>
        <class name="com.api.login.TestLogin2" />

        <parameter name="username" value="admin"/>
        <parameter name="password" value="123"/>
    </classes>

</test>

第二步:在测试用例上面通过以下注解来引入参数

@Parameters(value={"username","password"})

2. 第二种方式

package com.api.login;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class TestLogin2 {

    // 测试登录的用例
    @Test(dataProvider = "getData")
    public void testLogin2(String username, String password) {
        System.out.println("用户名:" + username + ",密码:" + password);
    }

    // 获取数据方法
    @DataProvider
    public Object[][] getData() {

        Object[][] data = {
            {"admin", "123"},
            {"李四", "123"},
            {"王五", "123"}
        };

        return data;
    }
}

说明

@DataProvider

TestNG 提供的数据驱动注解,用于为测试方法提供测试数据。

@Test(dataProvider = "getData")

指定当前测试方法使用 getData() 方法返回的数据进行参数化执行。

@Test(dataProvider = "getData")
数据格式

@DataProvider 返回值必须是二维数组:

Object[][] data = {
    {"admin", "123"},
    {"李四", "123"},
    {"王五", "123"}
};

每一行代表一组测试数据:

usernamepassword
admin123
李四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 clean test

说明:

  • 先清空旧的测试结果数据
  • 再执行测试用例
  • 生成最新的 Allure JSON 数据

2. 生成 Allure 报告

mvn io.qameta.allure:allure-maven:serve

说明:

  • 根据测试结果生成 Allure HTML 报告
  • 自动启动本地 Web 服务
  • 在浏览器中打开测试报告

执行流程

执行测试
    ↓
生成 allure-results(JSON 数据)
    ↓
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/

TestNG-常用注解介绍 【借助原博客】这篇文章将讲解里面常用的一些注解。 阅读详情

相关推荐

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 484

TestNG的一些常用注解

目录 1. 测试用例相关的注解 1.1 @BeforeSuite 1.2 @AfterSuite 1.3 @BeforeClass 1.4 @AfterClass 1.5 @BeforeTest 1.6 @AfterTest 1.7 @BeforeGroups 1.8 @AfterGroups 1.9 @BeforeMethod 1.10 @AfterMethod 1.11 @Test 1.12 @Parameters 1.13 @DataProvider 1.14 @Fact

sulia1234567890的博客 2028

Vector CANoe VT2516A实战:从硬件连接到CAPL脚本的完整配置指南

本文详细介绍了Vector CANoe VT2516A板卡从硬件连接到CAPL脚本编写的完整配置指南。涵盖硬件接线原则、VT System配置避坑技巧、系统变量创建规范、可视化Panel设计、CAPL脚本调试及典型故障排查案例,帮助工程师快速掌握VT2516A板卡的应用实践,提升汽车电子测试效率。

weixin_30608503的博客 254

TestNG入门——注解之@Test

TestNg提供的最基本的注解之一就是Test注解,作用在方法或者类上,此注解支持的属性有: 1、alwaysRun:提供一个false or true值,如果设置为true,则被标记的方法会永远被执行,即使被标记方法所依赖的方法执行失败了。 2、dataProvider:此属性的值为标记方法提供数据驱动的数据源 3、dataProviderClass:此属性指出提供数据驱动方法的所在类

蟋蟀的博客 8490

别再手动续期SSL证书了!用acme.sh配合阿里云DNS API,实现全自动HTTPS证书管理

本文详细介绍了如何使用acme.sh配合阿里云DNS API实现SSL/TLS证书的全自动管理,彻底解决手动续期带来的风险与不便。通过自动化部署流程,包括环境准备、API集成、多域名证书申请等关键步骤,帮助运维人员构建高效、可靠的HTTPS证书管理体系,显著提升安全性和运维效率。

weixin_29200485的博客 268

SAC安装与相关库文件(.so)的安装

摘要 SAC: Seismic Analysis Code 是用于地震信号处理的一套软件。 本文将介绍SAC的安装,以及安装时遇到的一些问题。主要是一些动态库(lib**.so)找不到的问题。 本文的环境 64位的 Ubuntu 16.04 64位的系统是安装出现问题的主要原因 1. SAC获取与安装 SAC 的安装,只需要解压,然后修改环境变量即可!!!不需要任何编译!!! 1.1. SAC 获取与解压 SAC软件获取地址:http://ds.iris.edu/ds/nodes/dmc/forms/s.

WangCY的博客 4334

Jtester之TestNG常用注解

本文关于TestNG常用注解。1、TestNG常用注解Here is the list of annotations that TestNG supports: – @BeforeSuite, @BeforeTest, @BeforeClass, @BeforeMethod, @BeforeGroups – @AfterSuite, @AfterTest, @AfterClass, @After

测试菜鸟的博客 704

西门子博图指令(定时器操作三)

西门子博图定时器中复位定时器功能指令介绍

yue008的博客 8873

TestNG常用注解解释

注解含义表 注解名称 含义 BeforeSuite 该方法会运行在该测试集所有其他测试前面 AfterSuite 该方法会运行在测试集里所有其他测试后面 BeforeTest 该方法会运行在本类内部test标注的方法前面 AfterTest 该方法会运行在本类内部test标注的方法后面 BeforeGroups 该方法会运行在测试组之前。这个方法会在这个

一个多年测试人的经验记录和分享 1112

详解大端模式和小端模式

详解大端模式和小端模式 一、大端模式和小端模式的起源         关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令

ce123的技术博客 19万+

金融监管压力测试场景生成

压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。

AI天才研究院 1208

TestNG注解

/ ...

m0_45283400的博客 715

34、木材在家具制造中的应用

本文详细探讨了木材在家具制造中的应用,从木材的选择、加工技术到设计创新和表面处理等方面进行了全面解析,并结合实际案例分析木材家具的市场趋势与未来发展。文章强调了木材家具在功能性、智能化和环保性方面的潜力,展示了其在现代家居生活中的重要地位。

flink9streamer的博客 242

【转】TestNG常用注解

http://blog.youkuaiyun.com/d6619309/article/details/52435084 TestNG的注解大部分用在方法级别上。常用的注解列举如下: 1. Before类别和After类别注解 @BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeM...

weixin_30670151的博客 149

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

testng 的常用注解

常用注解如下: @BeforeSuite: 此注解的方法会在当前测试集合中的任一测试用例前执行 @AfterSuite:此注解的方法会在当前测试集合中的所有测试程序结束后执行 @BeforeTest: 此注解的方法在每个Test执行之前会运行 @AfterTest: 此注解的方法在每个Test执行之后会运行 @BeforeGroups: 此注解的方法在分组测试的任一测试用...

dianmimao3880的博客 176

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

TestNG常用注解

原文链接:https://www.yiibai.com/testng/basic-annotations.html 以下是TestNG支持的注释列表: 注解描述 @BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。 @BeforeC...

weixin_30471065的博客 123

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TestNG的常用注解

1、TestNG的常见测试用例组织结构如下: (1)、Test Suite由一个或者多个Class组成。 (2)、Class由一个或者多个Test 测试组成。 (3)、一个测试Test 由一个或者多个测试方法组成。 2、TestNG的常用注解如下: @BeforeSuite         注解的方法将只运行一次,在当前测试集合(Suite)中所有测试用例开始运行之前执行。 @A

heart_1014的博客 2655

@test注解_TestNg的Test注解

前阶段我们从多个角度分析了选择TestNg的理由,并且也了解了TestNg的运行时生命周期,这次我们来详细的学习@Test注解,以及各个参数的使用。@Test注解的基本使用前面我们已经创建了好几个案例,并且每个案例的测试方法上都加上了 @Test 注解,用来标识当前方法是测试方法,而加了 @Test 注解的方法,则是最简单的TestNg测试方法了,现在我们来编写一个最基本的Test: @...

weixin_39542340的博客 4449

TestNG之注解

转自博客:http://blog.youkuaiyun.com/d6619309/article/details/52435084 这篇文章将讲解TestNG里面常用的一些注解。 TestNG的注解大部分用在方法级别上。常用的注解列举如下: 1. Before类别和After类别注解 @BeforeSuite @AfterSuite @BeforeTest @AfterTest ...

diekao4228的博客 165

TestNG-常用注解参数

注解@Test标签 package com.course.testng; import org.testng.annotations.Test; public class BasicAnnotation { @Test public void testCase01(){ System.out.println("ddd");...

diecheng0411的博客 510

TestNG的常用注解使用方法

注解的含义 测试方法的执行顺序 例子1: /** * * 1、 一个类里面可能存在多个测试方法(被@Test注解的方法),默认测试方法的执行顺序是按照方法名的字典序(ascii)升序排序执行的。 * */ public class Demo1{ public Demo1() { System.out.println("1 - 构造方法"); } @B...

写写代码 735

TestNG注解-@Test

引言 TestNG有很强大的注解功能,在这里要注意注解与注释的区别! 注解是一种元数据,能够被脚本编译所识别,起到一定的控制作用。 注释只是代码句或者一段代码的注释说明,本身并不影响代码的编译和执行,只是增强不同的开发人员对代码功能的有效理解。 正文 本文将结合第一个TestNG测试类,来介绍@Test 注解 首先附上文中演示例子的目录结构 1、创建被测试类 项目目录src/m...

黑域的专栏 4124

@test注解_testNG--常用注解

一、常见测试用例组织结构如下:Test Suite由一个或多个Test组成。Test 由一个或者多个测试Class组成。一个测试class由一个或者多个测试方法组成。在testing.xml中的配置如下。<suite> <test> <classes> <method> ...

weixin_39880318的博客 474
上一篇: 项目分享-HyperAgents
monkeyhlj
博客等级 码龄9年 1万+粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值