You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用TestNG的@Tag注解?冒烟测试相关技术疑问

针对TestNG 6.x.x实现冒烟测试的解决方案

一、TestNG 6.x.x无@Tag注解,用分组机制替代

TestNG 6.x.x本身并没有提供@Tag注解,它的测试分组功能是通过@Test注解的groups属性实现的,这是标记和筛选测试用例的核心方式。

标记冒烟测试用例示例:

import org.testng.annotations.Test;

public class CoreFunctionTests {
    // 仅标记为冒烟测试的用例
    @Test(groups = {"smoke"})
    public void verifyUserLogin() {
        // 核心登录逻辑验证
    }

    // 同时属于冒烟和回归测试的用例
    @Test(groups = {"smoke", "regression"})
    public void checkHomepageRendering() {
        // 首页加载及核心元素验证
    }
}

筛选执行冒烟测试的两种方式:

  1. TestNG XML配置文件
    通过配置文件指定只执行smoke分组的用例:
<suite name="Smoke Test Suite">
    <test name="Critical Function Tests">
        <groups>
            <run>
                <include name="smoke"/>
            </run>
        </groups>
        <classes>
            <class name="com.yourpackage.CoreFunctionTests"/>
            <!-- 添加所有包含冒烟测试的类 -->
        </classes>
    </test>
</suite>
  1. 命令行参数(配合Maven Surefire插件)
    如果使用Maven构建,直接通过命令行指定执行分组:
mvn test -Dgroups=smoke

二、冒烟测试确实普遍通过测试分组实现

冒烟测试的核心目标是快速验证系统核心功能的可用性,标记测试用例+筛选执行是行业通用的实现思路:

  • JUnit 5采用@Tag标记,配合注解或命令行过滤
  • TestNG采用@Test(groups)标记,配合XML或命令行过滤

你团队提到的@Tag是JUnit的实现方案,对应到TestNG就是它的分组机制,二者逻辑完全一致,只是语法不同。

三、快速走出困境的实操步骤

  1. 梳理所有需要纳入冒烟测试的核心用例,统一添加@Test(groups = {"smoke"})标记
  2. 编写TestNG XML配置文件,配置仅执行smoke分组
  3. 运行配置文件,验证只有标记为smoke的用例被执行
  4. 若使用构建工具,配置插件参数(如Maven Surefire的groups参数),实现一键执行冒烟测试

内容的提问来源于stack exchange,提问作者jgialis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 12:03:14