十一、TestNG依赖测试

测试的时候有可能要用到其他测试结果(是否成功)来执行这个测试。

就需要用到测试和测试之间传递参数;TestNG叫做 依赖测试。

TestNG依赖测试特点:

1-testNg允许指定依赖关系,如果依赖关系失败了,则跳过后面的所有方法.

2-如果使用依赖测试则会在执行该方法时先执行依赖的方法,后执行本方法。

在@Test注释中使用属性dependsOnMethods;

或者在@Test注释中使用属性dependsOnGroups。

dependsOnMethods

//如果第一方法执行失败了,第二个就不再执行

package com.lc.testngYiLai;

import org.testng.annotations.Test;

public class TestNG16 {
  

    @Test
    public void test_method() {
        System.out.println("TestNG16测试类的test_method方法;第一个测试方法");
        throw new RuntimeException();
    }
    
    @Test(dependsOnMethods = {"test_method"})
    public void test_method1() {
        System.out.println("TestNG16测试类的test_method1方法;第二个测试方法");
    }
}

 

一个方法依赖等多个方法

package com.lc.testngYiLai;

import org.testng.annotations.Test;

public class TestNG16 {
  

    @Test
    public void test_method1() {
        System.out.println("TestNG16测试类的test_method1方法;第一个测试方法");
        //throw new RuntimeException();
    }
    
    @Test
    public void test_method2() {
        System.out.println("TestNG16测试类的test_method2方法;第二个测试方法");
    }
    
    @Test(dependsOnMethods = {"test_method1","test_method2"})
    public void test_method3() {
        System.out.println("TestNG16测试类的test_method3方法;第三个测试方法");
    }
}


dependsOnGroups 

package com.lc.testngYiLai;

import org.testng.annotations.Test;


public class TestNG17 {
 

    @Test(groups  = "group01")
    public void deployServer1() {
        System.out.println("TestNG17类的deployServer1方法");
        //int a = 1 / 0 ;
    }
    @Test(groups = "group01")
    public void deployServer2() {
        System.out.println("TestNG17类的deployServer2方法");
    }
    
    
    
    @Test(dependsOnGroups   = "group01")
    public void deployServer3() {
        System.out.println("TestNG17类的deployServer3方法");
    }
}

依赖多个组

package com.lc.testngYiLai;

import org.testng.annotations.Test;


public class TestNG17 {
 

    @Test(groups  = "group01")
    public void deployServer1() {
        System.out.println("TestNG17类的deployServer1方法");
        //int a = 1 / 0 ;
    }
    @Test(groups = "group01")
    public void deployServer2() {
        System.out.println("TestNG17类的deployServer2方法");
    }
    
    
    @Test(groups = "group02")
    public void deployServer3() {
        System.out.println("TestNG17类的deployServer3方法");
    }
    
    
    
    @Test(dependsOnGroups   = {"group01","group02"})
    public void deployServer4() {
        System.out.println("TestNG17类的deployServer4方法");
    }
}

 如果被依赖的组出错,不会执行依赖的方法,但会执行被依赖组的所有方法

package com.lc.testngYiLai;

import org.testng.annotations.Test;


public class TestNG17 {
 

    @Test(groups  = "group01")
    public void deployServer1() {
        System.out.println("TestNG17类的deployServer1方法");
        int a = 1 / 0 ;//这个地方抛出错误
    }
    @Test(groups = "group01")
    public void deployServer2() {
        System.out.println("TestNG17类的deployServer2方法");
    }
    
    
    @Test(groups = "group02")
    public void deployServer3() {
        System.out.println("TestNG17类的deployServer3方法");
    }
    
    
    
    @Test(dependsOnGroups   = {"group01","group02"})
    public void deployServer4() {
        System.out.println("TestNG17类的deployServer4方法");
    }
}

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