IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Testng学习笔记 -> 正文阅读

[开发测试]Testng学习笔记

TestNG设计涵盖所有类型的测试:单元,功能,端到端,集成等,它需要JDK5或更高的JDK版本。
TestNG是一个开源自动化测试框架;其灵感来自JUnit和NUnit的

TestNG环境设置(配置安装)TestNG是一个Java的框架,所以第一个要求是JDK要安装在你的机器上。 系统要求 JDK 1.5或以上 内存 没有最低要求 磁盘空间 没有最低要求 操作系统 没有最低要求 步骤1 -验证Java安装在你的 - 易百教程https://www.yiibai.com/html/testng/2013/0914293.html

Testng安装

1、安装配置java环境。

2、下载TestNG中-6.8.jar

3、设置环境变量。

jar包地址

并在ClassPath中添加 ;%TESTNG_HOME%\testng-6.8.jar;

测试testng配置

创建一个Java类文件名TestNGSimpleTest??

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

public class TestNGSimpleTest {
	@Test
	public void testAdd() {
		String str = "TestNG is working fine";
		assertEquals("TestNG is working fine", str);
	}
}

创建一个XML文件名称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">
    <classes>
       <class name="TestNGSimpleTest"/>
    </classes>
  </test>
</suite>	

类编译使用javac编译如下:

C:\TestNG_WORKSPACE>javac TestNGSimpleTest.java

执行testng.xml

java org.testng.TestNG testng.xml

在testng.xml文件中写要执行的单元测试类名。

testng注释

注解描述
@BeforeSuite注解的方法将只运行一次,运行在一个suite的所有测试用例之前。
@AfterSuite注解的方法将只运行一次,运行在一个suite的所有测试用例之后
@BeforeClass运行在一个类前
@AfterClass运行在一个类后
@BeforeTest在一个test标签内之前运行。(在class注释之前运行)
@AfterTest在一个test标签内之后运行。
@BeforeGroups组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。
@AfterGroups组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。
@BeforeMethod在每个测试方法之前运行
@AfterMethod在每个测试方法之后运行
@DataProvider

标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。

该@Test?方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
@Factory作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners定义一个测试类的监听器。
@Parameters介绍如何将参数传递给@Test方法。
@Test标记一个类或方法作为测试的一部分。

?执行单元测试类

创建一个类
创建一个Java类进行测试为 MessageUtil.java 在 C:\ > TestNG_WORKSPACE

/*
* 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;
   }   
}  
创建测试例类
创建一个Java测试类 SampleTest.java

您的测试类添加一个的测试方法testPrintMessage()

添加注释@Test 到方法  testPrintMessage()

实现测试条件和使用的assertEquals API TestNG的检查条件

创建一个Java类文件名 SampleTest.java在 C:\ > TestNG_WORKSPACE

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

public class SampleTest {
	
   String message = "Hello World";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
        Assert.assertEquals(message, messageUtil.printMessage());
   }
}
创建 testng.xml
接下来,让我们创建testng.xml文件在 C:\ > TestNG_WORKSPACE 执行测试用例,此文件捕获整个测试XML。这个文件可以很容易地描述所有的测试套件和它们的参数在一个文件中,你可以检查你的代码库或e-mail给同事。这也使得它容易提取测试或分裂的几个运行时配置的子集(例如,TestNG的database.xml 只能运行测试,行使数据库)。

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Sample test Suite">
   <test name="Sample test">
    <classes>
      <class name="SampleTest" />
    </classes>
  </test>
</suite>	
情况下使用javac编译测试

C:\TestNG_WORKSPACE>javac MessageUtil.java SampleTest.java 
现在,运行这个 testng.xml,将运行中定义的测试用例 <test> 标签

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
验证输出。

Hello World

===============================================
Sample test Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

忽略方法?

测试方法是标注了@Test(enabled = false),在测试执行时忽略。

组测试

  • 组的测试方法两个用处为:

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

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

创建一个Java类进行测试为 MessageUtil.java 在 C:\ > TestNG_WORKSPACE

/*
* 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 "tutorialspoint" to the message
    public String salutationMessage() {
        message = "tutorialspoint" + 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 在 C:\ > TestNG_WORKSPACE

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?C:\ > TestNG_WORKSPACE?来执行测试用例,在这里,我们将只执行这些测试,属于组functest。

<?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="GroupTestExample" />
	</classes>
    </test>
</suite>

组中组

组也可以包含其他组。这些组称为MetaGroups。例如,您可能希望定义一个组中的所有,包括checkintest和functest。让我们修改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="GroupTestExample" />
	</classes>
   </test>
</suite>

这里是定义了functest和checkintest都属于all,如果不定义,run里只包括all,是不执行任何用力的。

排斥组

可以忽略一个组使用<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>
         <define name="all">
	    <exclude name="functest"/>
	    <include name="checkintest"/>
	 </define>
	 <run>
	    <include name="all"/>
	 </run>
   	 </groups>
	 <classes>
	      <class name="GroupTestExample" />
	</classes>
   </test>
</suite>

TestNG异常测试

TestNG跟踪异常处理代码提供了一个选项。可以测试是否需要代码抛出异常或不抛出。 @Test注释expectedExceptions 参数一起使用。

TestNG依赖测试

TestNG允许指定依赖,无论与否:

  • 使用属性dependsOnMethods在?@Test?注释OR

  • 使用属性dependsOnGroups在@Test注解。

TestNG参数化测试

方法一:添加注释?@Parameters("myName")

方法二:@DataProvider

TestNG运行JUnit测试

TestNG可以兼容运行JUnit

TestNG测试结果报告

TestNG默认情况下,会产生不同类型的测试执行报告。这包括HTMLXML报表输出。 TestNG的还允许用户自己写的报告,并用它使用TestNG。还有一个选项来写你自己的记录器,在运行时通过TestNG的通知。

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:07:17  更:2022-04-22 19:08:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 7:30:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码