TestNg(二)用例分组

有时候我们的测试用例并不想以测试包、类和用例为单位去运行。测试用例可以有多个纬度去标识。

例如,可以根据用例的重要程度划分:

  • 重要程度:低——>中——>高

或者,根据用例的类型划分:

  • 类型:正常——>异常

TestNG 允许我们给测试用例贴标签。我们可以根据这些标签有选择地的跳过或执行这些用例。

实例


import org.testng.annotations.Test;

import static org.testng.AssertJUnit.assertEquals;


@Test(groups = {"功能测试"})
public class TagTest {

    @Test(groups={"高", "正常"})
    public void testCase1(){
        assertEquals(2+2, 4);
    }

    @Test(groups = {"高", "正常"})
    public void testCase2(){
        assertEquals(5-3, 2);
    }
    @Test(groups = {"中", "正常"})
    public void testCase3(){
        assertEquals(2/1, 2);
    }

    @Test(groups = {"低", "异常"})
    public void testCase4(){
        assertEquals(2/0, 1);
    }

}

接下来配置 testng.xml ,根据标签筛选要运行的测试用例。 ``` <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <!-- 排除不执行的测试用例 --> <!-- 指定执行的测试用例 -->

    <classes>
        <class name="test.sample.TagTest"/>
    </classes>
</test>

```

  • <groups>...</groups> 测试组标签。
  • <run>...</run> 运行测试。
  • <exclude> 根据groups的设置,排除不执行的用例。
  • <include> 根据groups的设置,指定执行的测试用例。

根据上面的配置,运行测试: testCase1 和 testCase2 两条用例将被执行。

不要忘了,我们给 TagTest 测类同样也划分了组(groups = {"功能测试"}),现在修改 testng.xml 配置。

……
<groups>
    <run>
        <exclude name="异常"  />   <!-- 排除不执行的测试用例 -->
        <include name="功能测试"  />  <!-- 指定执行的测试用例 -->
    </run>
</groups>
……

再次运行测试:testCase1、testCase2 和 testCase3 三条用例将被执行。

猜你喜欢

转载自blog.csdn.net/sz1765311383/article/details/86647987