测试的时候有可能要用到其他测试结果(是否成功)来执行这个测试。
就需要用到测试和测试之间传递参数;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方法;第三个测试方法"); } }
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