TestNG的常用注解

来源:互联网 发布:银行家算法的例题详解 编辑:程序博客网 时间:2024/05/19 02:41

1、TestNG的常见测试用例组织结构如下:

(1)、Test Suite由一个或者多个Test组成。

(2)、Test由一个或者多个测试Class组成。

(3)、一个测试Class由一个或者多个测试方法组成。

2、TestNG的常用注解如下:

@BeforeSuite         注解的方法将只运行一次,在当前测试集合(Suite)中所有测试用例开始运行之前执行。
@AfterSuite           注解的方法将只运行一次,在当前测试集合(Suite)中所有测试用例运行结束执行

@BeforeTest           注解的方法将在Test中所有测试用例开始运行之前执行。
@AfterTest             注解的方法将在Test中所有测试用例运行结束后执行。

@BeforeGroups     注解的方法将在分组测试用例的所有测试用例开始运行之前执行。
@AfterGroups        注解的方法将在分组测试用例的所有测试用例运行结束后执行。

@BeforeClass        注解的方法将在当前测试类(class)的第一个测试方法开始调用前执行。
@AfterClass          注解的方法将在当前测试类(class)的所有测试用例运行结束后执行。

@BeforeMethod     注解的方法将每个测试方法开始运行前运行。
@AfterMethod       注解的方法将每个测试方法运行结束后执行。

@DataProvider      提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法希望个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。               
@Factory             返回TestNG测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners           定义一个测试类的监听器。
@Parameters       介绍如何将参数传递给@Test方法。
@Test                  标记一个测试方法(测试用例)。

3、使用注解编写TestNG测试用例的步骤:

(1) 在工程下新建一个java类,输入测试代码:

package cn.testng;

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

public class Annotation {
  @Test
  public void testCase1() {
      System.out.println("测试用例1被执行");
  }

  @Test

  public void testCase2() {
      System.out.println("测试用例2被执行");
  }
  @BeforeMethod
  public void beforeMethod() {
      System.out.println("beforeMethod在每个测试方法开始运行前执行");
  }

  @AfterMethod
  public void afterMethod() {
      System.out.println("afterMethod在每个测试方法运行结束后执行");
  }

  @BeforeClass
  public void beforeClass() {
      System.out.println("beforeClass在当前测试类的第一个测试方法开始调用前执行");
  }

  @AfterClass
  public void afterClass() {
      System.out.println("afterClass在当前测试类的最后一个测试方法运行结束后执行");
  }

  @BeforeTest
  public void beforeTest() {
      System.out.println("beforeTest在测试类中Test开始运行前执行");
  }

  @AfterTest
  public void afterTest() {
      System.out.println("afterTest在测试类中Test运行结束后执行");
  }

  @BeforeSuite
  public void beforeSuite() {
      System.out.println("beforeSuite在当前测试集合(Suite)中所有测试程序开始运行前执行");
  }

  @AfterSuite
  public void afterSuite() {
      System.out.println("afterSuite当前测试集合(Suite)中所有测试程序运行结束后执行");
  }

}


(2) 选中“Annotation.java”类名,单击鼠标右键,在弹出的快捷菜单中选择“Run As”---"TestNG Test"命令,开始执行当前测试类中TestNG测试用例

(3)测试结果如下:

[TestNG] Running:
  C:\Windows\Temp\testng-eclipse--1889416676\testng-customsuite.xml

beforeSuite在当前测试集合(Suite)中所有测试程序开始运行前执行
beforeTest在测试类中Test开始运行前执行
beforeClass在当前测试类的第一个测试方法开始调用前执行
beforeMethod在每个测试方法开始运行前执行
测试用例1被执行
afterMethod在每个测试方法运行结束后执行
beforeMethod在每个测试方法开始运行前执行
测试用例2被执行
afterMethod在每个测试方法运行结束后执行
afterClass在当前测试类的最后一个测试方法运行结束后执行
afterTest在测试类中Test运行结束后执行
PASSED: testCase1
PASSED: testCase2

===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================

afterSuite当前测试集合(Suite)中所有测试程序运行结束后执行

===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================

[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@24dfb3be: 0 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@69922b29: 16 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@bcbe4b0: 15 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@2b86616b: 16 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@677d8938: 62 ms


0 0