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

TestNG如何实现测试并行执行、类串行执行?

解决TestNG测试类串行执行的问题

针对你的需求,有两个直接可行的方案:

方案一:给<test>标签添加preserve-order="true"属性

TestNG默认不保证单个<test>内部类的执行顺序,即使你在xml里按顺序写了类,它也可能乱序执行。在<test>标签里加上preserve-order="true",就能强制让类按照配置文件里的定义顺序串行执行——先跑完第一个类的所有@Test方法,再执行下一个类。

修改后的testng.xml配置如下:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="MyTestSuite" parallel="tests" thread-count="2">
    <test name="Test1" preserve-order="true">
        <classes>
            <class name="com.example.FBOneClass" />
            <class name="com.example.FBTwoClass" />
        </classes>
    </test>
    <test name="Test2" preserve-order="true">
        <classes>
            <class name="com.example.GOneClass" />
            <class name="com.example.GTwoClass" />
        </classes>
    </test>
</suite>

方案二:使用TestNG分组与依赖分组

如果不想修改xml配置,可以通过代码层面的分组依赖实现:

  1. 给FBOneClass的所有@Test方法添加统一分组:
@Test(groups = "fb_group_1")
public void testMethod1() {
    // 测试逻辑
}
  1. 给FBTwoClass的所有@Test方法添加分组依赖,依赖整个fb_group_1:
@Test(dependsOnGroups = "fb_group_1")
public void testMethodA() {
    // 测试逻辑
}

这样FBTwoClass的所有方法会在FBOneClass的所有方法执行完成后才开始运行,不用单独依赖某个具体方法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:02:45