个性化阅读
专注于IT技术分析

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组

第二种情况:当在标签内定义了<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组

赞(0) 打赏
未经允许不得转载:srcmini » TestNG组测试实例详细图解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏