testNG组测试可以分为方法分组测试 和 类分组测试。
一、方法分组测试
方法的分组 主要是在@Test中添加groups参数。相同的groups参数值 为同一组,通过testng.xml的<groups>下的<run>下的<include>标签中的name值调用。如果xml<include>标签中的name和@Test中添加groups参数一致,则会运行。反之则不会运行。
代码如下
1 package com.course.testng.groups; 2 3 import org.testng.annotations.AfterGroups; 4 import org.testng.annotations.BeforeGroups; 5 import org.testng.annotations.Test; 6 7 public class GroupsOnMethod { 8 @Test(groups = "server") 9 public void test1() { 10 System.out.println("这是服务端的测试方法1"); 11 } 12 13 @Test(groups = "server") 14 public void test2() { 15 System.out.println("这是服务端的测试方法2"); 16 } 17 18 @Test(groups = "client") 19 public void test3() { 20 System.out.println("这是客户端的测试方法3"); 21 } 22 23 @Test(groups = "client") 24 public void test4() { 25 System.out.println("这是客户端的测试方法4"); 26 } 27 28 @BeforeClass("server") 29 public void beforeGroupsOnServier() { 30 System.out.println("这是服务端组运行之前运行的方法"); 31 } 32 33 @AfterGroups("server") 34 public void afterGroupsOnServier() { 35 System.out.println("这是服务端组运行之后运行的方法"); 36 } 37 38 }
testng.xml 如下
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <suite name="test"> 3 <test name="groupsmethod"> 4 <groups> 5 <run> 6 <include name="server"/> 7 </run> 8 </groups> 9 <classes> 10 <class name="com.course.testng.groups.GroupsOnMethod"/> 11 </classes> 12 </test> 13 </suite>
运行结果如下
1 E:Program FilesworkspacemukeAotoTestchapter5srcmain esourcesgroupsOnMethod.xml 2 这是服务端的测试方法1 3 4 这是服务端的测试方法2 5 6 =============================================== 7 test 8 Total tests run: 2, Failures: 0, Skips: 0 9 =============================================== 10 11 Process finished with exit code 0
注意事项:
由以上执行结果可以看出来,@Test(groups = "server")会被执行,但@BeforeGroups("server")和@BeforeClass("server")都不会执行。如果需要执行可以使用always参数。如@AfterClass( alwaysRun = true)