【Java进阶营】Java技术专题「TestNG专题」单元测试框架之TestNG使用教程指南(上)

本文详细介绍了TestNG测试框架的使用,包括TestNG的安装、优点、注解、测试用例编写、数据驱动测试、依赖测试、超时测试等。通过实例展示了如何在Java中创建和运行TestNG测试,以及配置testNG.xml文件,帮助开发者掌握TestNG的实战技巧。
摘要由CSDN通过智能技术生成

TestNG介绍

**TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便。

TestNG安装

<dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.10</version>
      <scope>test</scope>
</dependency>

TestNG的优点
  • 漂亮的HTML格式测试报告
  • 支持并发测试
  • 参数化测试更简单
  • 支持输出日志
  • 支持更多功能的注解
编写TestNG测试用例的步骤
  • 使用 Eclipse生成TestNG的测试程序框架

  • 在生成的程序框架中编写测试代码逻辑

  • 根据测试代码逻辑,插入TestNG注解标签

  • 配置Testng.xml文件,设定测试类、测试方法、测试分组的执行信息

  • 执行TestNG的测试程序

TestNG的简单用例
Java直接运行
package com.demo.test.testng;
import org.testng.annotations.Test;
public class NewTest {
  @Test
  public void testFunction() {
      System.out.println("this is new test");
      Assert.assertTrue(true);
  }
}

xml方式运行

由于我将xml放置在其他文件夹,不和class放在一个文件夹,所以需要修改xml,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
  <test name="Test">
    <classes>
      <class name="com.demo.test.testng.NewTest"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

TestNG的注解

TestNG支持多种注解,可以进行各种组合,如下进行简单的说明

image

@BeforeSuite > @BeforeTest > @BeforeMethod > @Test > @AfterMethod > @AfterTest > @AfterSuite

如上列表中的@Factory、@Linsteners这两个是不常用的;
前十个注解看起来不太容易区分,顺序不太容易看明白,以如下范例做简单说明,代码

import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class NewTest {

  @Test(groups="group1")
  public void test1() {
      System.out.println("test1 from group1");
      Assert.assertTrue(true);
  }

  @Test(groups="group1")
  public void test11() {
      System.out.println("test11 from group1");
      Assert.assertTrue(true);
  }

  @Test(groups="group2")
  public void test2() 
  {
      System.out.println("test2 from group2");
      Assert.assertTrue(true);
  }

  @BeforeTest
  public void beforeTest() 
  {
      System.out.println("beforeTest");
  }

  @AfterTest
  public void afterTest() 
  {
      System.out.println("afterTest");
  }

  @BeforeClass
  public void beforeClass() 
  {
      System.out.println("beforeClass");
  }

  @AfterClass
  public void afterClass() 
  {
      System.out.println("afterClass");
  }

  @BeforeSuite
  public void beforeSuite() 
  {
      System.out.println("beforeSuite");
  }

  @AfterSuite
  public void afterSuite() 
  {
      System.out.println("afterSuite");
  }

  //只对group1有效,即test1和test11
  @BeforeGroups(groups="group1")
  public void beforeGroups() 
  {
      System.out.println("beforeGroups");
  }

  //只对group1有效,即test1和test11
  @AfterGroups(groups="group1")
  public void afterGroups() 
  {
      System.out.println("afterGroups");
  }

  @BeforeMethod
  public void beforeMethod() 
  {
      System.out.println("beforeMethod");
  }

  @AfterMethod
  publi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值