软件测试实习0624-testNG组测试

testNG组测试

  在testNG中组测试是一个新的创新功能,它不存在于Junit框架,它允许调度到适当的部分方法和瓶坯复杂的测试方法分组。您不仅可以声明属于群体的那些方法,但你也可以指定一组包含其他组。然后testNG可调用和要求一组特定的群体(或正则表达式),而排出另外一个集合。这给了你最大的灵活性,如何区分测试,如果想运行两套不同的测试背景,不要求重新编译任何东西。

组指定testng.xml/文件使用<groups>标签。它可以发现无论是根据<test><suite>标签。组指定<suite>标签使用于所有的<test>标签下方

创建一个类MessageUtil.java 
package hello;

/*
* This class prints the given message on console.
*/
public class MessageUtil {
    private String message;

    // Constructor
    // @param message to be printed
    public MessageUtil(String message) {
    	this.message = message;
    }

    // prints the message
    public String printMessage() {
    	System.out.println(message);
    	return message;
    }

    // add "totorialspoint!" to the message
    public String salutationMessage() {
    	message = "Hi!" + message;
    	System.out.println(message);
    	return message;
    }
    
    //add "www." to the message
    public String exitMessage(){
    	message = "www." + message;
    	System.out.println(message);
    	return message;
    }
创建测试方案类

创建一个Java测试类为GroupTestExample.java

测试类添加测试方法testPrintMessage()testSalutation().

组测试方法两个类别为:

检入登记测试(checkintest):提交新的代码之前,你应该运行这些测试。他们通常要快,只要确保没有被打破的基本功能

功能测试(functest):这些测试应该涵盖软件的所有功能,每天至少运行一次,虽然理想情况下,会希望他们不断运行

创建Java类名GroupTestExample.java
package group;

import org.testng.Assert;
import org.testng.annotations.Test;

public class GroupTestExample {
    String message = ".com";
    MessageUtil messageUtil = new MessageUtil(message);

    @Test(groups = { "functest", "checkintest" })
    public void testPrintMessage() {
        System.out.println("Inside testPrintMessage()");
        message = ".com";
        Assert.assertEquals(message, messageUtil.printMessage());
    }

    @Test(groups = { "checkintest" })
    public void testSalutationMessage() {
        System.out.println("Inside testSalutationMessage()");
        message = "tutorialspoint" + ".com";
        Assert.assertEquals(message, messageUtil.salutationMessage());
    }

    @Test(groups = { "functest" })
    public void testingExitMessage() {
        System.out.println("Inside testExitMessage()");
        message = "www." + "tutorialspoint"+".com";
        Assert.assertEquals(message, messageUtil.exitMessage());
    }
}
创建testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
    <test name="test1">
        <groups>
	    	<run>
				<include name="functest" />
	    	</run>
		</groups>
	<classes>
	    <class name="group.GroupTestExample" />
	</classes>
    </test>
</suite>
测试结果

我们可以看到testPrintMessage()testSalutationMessage()testingExitMessage()只有testPrintMessage()testingExitMessage()这两个测试函数被运行了。因为没有运行testSalutationMessage()导致第三个运行出来的测试不成功


组中组

组中可以包含其他组。这些组称为MetaGroup。例如你希望定义一个组中的所有,包括checkintestfunctest

修改testng.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
   <test name="test1">
      <groups>
         <define name="all">
	    <include name="functest"/>
	    <include name="checkintest"/>
	 </define>
	 <run>
	    <include name="all"/>
	 </run>
   	 </groups>
	 <classes>
	      <class name="group.GroupTestExample" />
	</classes>
   </test>
</suite>
测试结果


排斥组

可以忽略一个组的时候使用<exclude>标签

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
   <test name="test1">
      <groups>
	 	<run>
	    	<include name="checkintest"/>
	    	<exclude name="functest"/>
	 	</run>
   	 </groups>
	 <classes>
	      <class name="group.GroupTestExample" />
	</classes>
   </test>
</suite>


测试结果

我们可以看到三个测试函数中,只有第二个被测试,其它了两个函数都包含functest,不予测试




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值