• 十二、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 属性

     

    执行结果

  • 相关阅读:
    Windows10 iis10 arr webfarm
    两个command的疑惑
    关于controller和apicontroller的跨域实现过滤器的不同
    抽象工厂
    c# 字体库跨域解决
    c# 父类的引用指向子类的实例
    垂直居中
    扇形导航
    2D变换
    京东放大镜效果
  • 原文地址:https://www.cnblogs.com/fanfancs/p/14170637.html
Copyright © 2020-2023  润新知