十二、TestNG分组测试2

在执行测试用例的时候,往往一个功能依赖多个测试用例,比如流程的测试,那么这个时候就可以用到组测试,把流程涉及到测试用例都分到同一组里,按组执行即可。

testNG的组通过@Test的groups属性来指定的,一个方法可以属于一个组(@Test(groups = {"checkintest"})),也可以属于多个组(@Test(groups = {"functest","checkintest"}))。

定义common.java  包含 functest和checkintest分组

package com.lc.testngFenZu;

import org.testng.annotations.Test;

public class common {
  

    @Test(groups = {"functest","checkintest"})
    public void login() {
        System.out.println("common测试类的login方法");
    }
    
    @Test(groups = {"functest","checkinitest"})
    public void quit() {
        System.out.println("common测试类的quit方法");
    }
    
    @Test(groups = {"checkinitest"})
    public void init() {
        System.out.println("common测试类的init方法");
    }
    
}

functionA.java测试类包含 functest 和 function2 分组

package com.lc.testngFenZu;

import org.testng.annotations.Test;

public class functionA {
 
    @Test(groups = {"functest"})
    public void testMethod1() {
        System.out.println("我是functionA测试类的testMethod1方法");
    }
    
    @Test(groups = {"function2"})
    public void testMethod2() {
        System.out.println("我是functionA测试类的testMethod2方法");
    }
    
}

functionB.java 测试类 包含 functest 和 functest2 分组

package com.lc.testngFenZu;

import org.testng.annotations.Test;

public class functionB {
     
    @Test(groups = {"functest"})
    public void testMethod3() {
        System.out.println("我是functionB测试类的testMethod3方法");
    }
    
    @Test(groups = {"functest2"})
    public void testMethod4() {
        System.out.println("我是functionB测试类的testMethod4方法");
    }
}

定义了三个测试类,分成三个分组

创建测试testng.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none">
  <test name="Test" preserve-order="1">
      <groups>
          <run>
              <include name="functest"/> <!-- 执行测试分组名字为 functest -->
          </run>
      </groups>
      
    <!--从下面测试类里找到名为 functest 分组方法 --> <classes> <class name="com.lc.testngFenZu.common"></class> <class name="com.lc.testngFenZu.functionA"></class> <class name="com.lc.testngFenZu.functionB"></class> </classes> </test> <!-- Test --> </suite> <!-- Suite -->

折行结果

如何控制组里方法执行的顺序呢?可以通过@Test的priority属性,testNG按照priority从小到大的顺序执行。

还是上面三个测试类,加上 priority 属性

 

执行结果

原文地址:https://www.cnblogs.com/fanfancs/p/14170637.html