TestNG组测试实例详细图解

本文概述

  • 组内的测试用例
  • 属于多个组的测试
  • 包含/排除组
  • 使用正则表达式
  • 组中的组
TestNG组可让你对不同测试方法进行分组。当你要访问不同类的测试方法时, 需要对测试方法进行分组。
你不仅可以在指定组中声明方法, 还可以在指定组中声明另一个组。因此, 可以要求TestNG包括一组特定的组, 同时排除另一组组。
通过将测试方法按组划分, 它为你提供了最大的灵活性, 并且如果你背对背运行两组不同的测试用例, 则不需要重新编译测试用例。
组在testng.xml文件中使用< groups> 标记指定。可以在< suite> 标记或< test> 标记中指定组。如果在< suite> 标记内指定了< groups> 标记, 则它将应用于XML文件的所有< test> 标记。如果在特定的< test> 文件夹中指定了< groups> 标记, 则仅将其应用于该特定的< test> 标记。
让我们通过一个示例来了解TestNG组的概念:
组内的测试用例 第一种情况:在< suite> 标记内定义了< groups> 标记时。
步骤1:打开Eclipse。
步骤2:我们创建三个Java项目, 即Personal_loan.java, Home_loan.java和Car_loan.java。
Personal_loan.java
package com.srcmini; import org.testng.annotations.Test; public class Personal_loan { @Test(groups= {"SmokeTest"}) public void WebLoginPersonalLoan() { System.out.println("Web Login Personal Loan"); } @Test public void MobileLoginPersonalLoan() { System.out.println("Mobile Login Personal Loan"); } @Test public void APILoginPersonalLoan() { System.out.println("API Login Personal Loan"); } }

Home_loan.java
package com.srcmini; import org.testng.annotations.Test; public class Home_loan { @Test public void WebLoginHomeLoan() { System.out.println("Web Login Home Loan"); } @Test(groups= {"SmokeTest"}) public void MobileLoginHomeLoan() { System.out.println("Mobile Login Home Loan"); } @Test public void APILoginHomeLoan() { System.out.println("API Login Home Loan"); } }

Car_loan.java
package com.srcmini; import org.testng.annotations.Test; public class Car_loan { @Test public void WebLoginCarLoan() { System.out.println("Web Login Home Loan"); } @Test public void MobileLoginCarLoan() { System.out.println("Mobile Login Home Loan"); } @Test(groups= {"SmokeTest"}) public void APILoginCarLoan() { System.out.println("API Login Home Loan"); } }

在上述情况下, 我们为三个不同类的三个测试用例提供了一个组名, 即SmokeTest。
步骤3:现在, 我们创建一个testng.xml文件, 在其中配置我们创建的类并添加新标签< groups> 。我们要执行具有” SmokeTest” 组的测试用例。
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < groups> < run> < include name="SmokeTest"/> < /run> < /groups> < test name="Personal Loan"> < classes> < class name="com.srcmini.Personal_loan"/> < /classes> < /test> < !-- Test --> < test name="Home Loan"> < classes> < class name="com.srcmini.Home_loan"/> < /classes> < /test> < !-- Test --> < test name="Car Loan"> < classes> < class name="com.srcmini.Car_loan"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

【TestNG组测试实例详细图解】输出
TestNG组测试实例详细图解

文章图片
第二种情况:当在标签内定义了< groups> 标签时。
testng.xml看起来像:
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="Loan"> < groups> < run> < include name="SmokeTest"/> < /run> < /groups> < classes> < class name="com.srcmini.Personal_loan"/> < class name="com.srcmini.Home_loan"/> < class name="com.srcmini.Car_loan"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

属于多个组的测试 步骤1:打开Eclipse。
步骤2:我们创建一个名为” Groups.java” 的Java项目。
Groups.java
package com.srcmini; import org.testng.annotations.Test; public class Groups { @Test(groups= {"Group A"}) public void testcase1() { System.out.println("Test case belonging to Group A"); } @Test(groups= {"Group A", "Group B"}) public void testcase2() { System.out.println("Test case belonging to both Group A and Group B"); } @Test(groups= {"Group B"}) public void testcase3() { System.out.println("Test case belonging to Group B"); } }

在上面的代码中, 我们定义了两个组, 即A组和B组。testcase1()被标记为” Group A” , testcase2被标记为两个组” Group A” 和” Group B” , 而testcase3( )标记为” B组” 。
步骤3:我们创建testng.xml文件来配置Groups类。
testng.xml文件
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="Group A"> < groups> < run> < include name="Group A"/> < /run> < /groups> < classes> < class name="com.srcmini.Groups"/> < /classes> < /test> < !-- Test --> < test name="Group B"> < groups> < run> < include name="Group B"/> < /run> < /groups> < classes> < class name="com.srcmini.Groups"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

步骤4:通过右键单击testng.xml文件来运行testng.xml文件。
输出
TestNG组测试实例详细图解

文章图片
包含/排除组 步骤1:打开Eclipse。
步骤2:我们创建一个新的Java项目。
Groups.java
package com.srcmini; import org.testng.annotations.Test; public class Groups { @Test(groups= {"Include Group"}) public void test_case1() { System.out.println("This is test case 1"); } @Test(groups= {"Include Group"}) public void test_case2() { System.out.println("This is test case 2"); } @Test(groups= {"Exclude Group"})public void test_case3() { System.out.println("This is test case 3"); } }

步骤3:我们将创建testng.xml文件。
testng.xml文件
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="Include and Exclude Group"> < groups> < run> < include name="Include Group"/> < exclude name="Exclude Group"/> < /run> < /groups> < classes> < class name="com.srcmini.Groups"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

步骤4:运行testng.xml文件。
输出
TestNG组测试实例详细图解

文章图片
使用正则表达式 我们还可以将正则表达式与TestNG组一起使用。
让我们通过一个例子来理解:
步骤1:打开Eclipse。
步骤2:我们创建一个名为” Regular_Expression.java” 的Java项目。
Regular_Expression.java
package com.srcmini; import org.testng.annotations.Test; public class Regular_Expression { @Test(groups= {"Include test case1"}) public void test_case1() { System.out.println("This is test case 1"); } @Test(groups= {"Include test case2"}) public void test_case2() { System.out.println("This is test case 2"); } @Test(groups= {"Exclude test case3"}) public void test_case3() { System.out.println("This is test case 3"); } }

步骤3:现在, 我们创建testng.xml文件以配置上述类。
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="Including test cases"> < groups> < run> < include name="Include.*"/> < /run> < /groups> < classes> < class name="com.srcmini.Regular_Expression"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

步骤4:运行testng.xml文件。
输出
TestNG组测试实例详细图解

文章图片
组中的组 我们还可以在另一个组中指定一个组。在另一个组中定义的组称为元组。
让我们通过一个例子来理解:
步骤1:打开Eclipse。
步骤2:我们创建一个名为” Groups_in_Groups” 的Java项目。
Groups_in_Groups.java
package com.srcmini; import org.testng.annotations.Test; public class Groups_in_Groups { @Test(groups= {"Smoke"}) public void test1() { System.out.println("test1"); } @Test(groups= {"Regression"}) public void test2() { System.out.println("test2"); } @Test public void test3() { System.out.println("test3"); }}

步骤3:现在, 我们创建一个testng.xml文件, 在其中配置上述类。
testng.xml文件
< ?xml version="1.0" encoding="UTF-8"?> < !DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> < suite name="test_suite"> < test name="Groups in Groups"> < groups> < define name="Group 1"> < include name="Smoke"/> < include name="Regression"/> < /define> < run> < include name="Group 1"/> < /run> < /groups> < classes> < class name="com.srcmini.Groups_in_Groups"/> < /classes> < /test> < !-- Test --> < /suite> < !-- Suite -->

在上面的xml文件中, 我们在另一个名为” Group 1″ 的组中定义了一个新组, 并包括了用” Smoke” 和” Regression” 标记的那些测试用例。
步骤4:运行testng.xml文件。
输出
TestNG组测试实例详细图解

文章图片

    推荐阅读