注解是java 5新增的功能,可使用于类,方法,变量,testNG包提供的注解功能请见下表

1、@BeforeSuite or @AfterSuite  被注解的方法,将在整个测试套件之前 or 之后执行。

2、@BeforeTest or @AfterTest 被注解的方法,将在测试套件内所有用例执行之前 or 之后执行。

3、@BeforeGroups or @AfterGroups 被注解的方法,将在指定组内任意用例执行之前 or 之后执行。

4、@BeforeClass or @AfterClass 被注解的方法,将在此方法对应的类中的任意其他的,被标注为@Test 的方法执行前 or 执行后执行。

5、@BeforeMethod or@AfterMethod 被注解的方法,将在此方法对应的类中的任意其他的,被标注为@Test的方法执行前 or 执行后执行

6、@DataProvider 被注解的方法,强制返回一个 二维数组Object[ ][ ]作为另外一个@Test方法的数据工厂

7、@Factory 被注解的方法,作为对象工厂,强制返回一个对象数组 Object[ ]

8、@Listeners 定义一个测试类的监听器

9、@Parameters 定义一组参数,在方法运行期间向方法传递参数的值,参数的值在testng.xml中定义

10、@Test  标记方法为测试方法,如果标记的是类,则此类中所有的public方法都为测试方法

首先来看看以下几个注解再testNG中的使用方法与不同点
@BeforeSuite / @AfterSuite
@BeforeTest / @AfterTest
@BeforeGroups / @AfterGroups
@BeforeClass / @AfterClass
@BeforeMethod / @AfterMethod
创建一个java项目,项目结构如下:

TestClass.java文件中增加如下代码

  1.  
    package test.beforafter;
  2.  
    import org.testng.annotations.AfterClass;
  3.  
    import org.testng.annotations.AfterTest;
  4.  
    import org.testng.annotations.AfterGroups;
  5.  
    import org.testng.annotations.AfterSuite;
  6.  
    import org.testng.annotations.AfterMethod;
  7.  
    import org.testng.annotations.BeforeClass;
  8.  
    import org.testng.annotations.BeforeTest;
  9.  
    import org.testng.annotations.BeforeGroups;
  10.  
    import org.testng.annotations.BeforeSuite;
  11.  
    import org.testng.annotations.BeforeMethod;
  12.  
    import org.testng.annotations.Test;
  13.  
     
  14.  
     
  15.  
    public class TestClass {
  16.  
     
  17.  
     
  18.  
    @BeforeSuite
  19.  
    public void beforeSuite(){
  20.  
    System.out.println("Before Suite Method");
  21.  
    }
  22.  
     
  23.  
    @AfterSuite
  24.  
    public void afterSuite(){
  25.  
    System.out.println("After Suite Method");
  26.  
    }
  27.  
     
  28.  
    @BeforeTest
  29.  
    public void beforeTest(){
  30.  
    System.out.println("Before Test Method");
  31.  
    }
  32.  
     
  33.  
    @AfterTest
  34.  
    public void afterTest(){
  35.  
    System.out.println("After Test Method");
  36.  
    }
  37.  
     
  38.  
    @BeforeClass
  39.  
    public void beforeClass(){
  40.  
    System.out.println("Before Class Method");
  41.  
    }
  42.  
     
  43.  
    @AfterClass
  44.  
    public void afterClass(){
  45.  
    System.out.println("After Class Method");
  46.  
    }
  47.  
     
  48.  
    @BeforeGroups(groups={"testOne"})
  49.  
    public void beforeGroupOne(){
  50.  
    System.out.println("Before Group testOne Method");
  51.  
    }
  52.  
     
  53.  
    @AfterGroups(groups={"testOne"})
  54.  
    public void afterGroupOne(){
  55.  
    System.out.println("After group testOne Method");
  56.  
    }
  57.  
     
  58.  
    @BeforeGroups(groups={"testTwo"})
  59.  
    public void beforeGroupTwo(){
  60.  
    System.out.println("Before Group testTwo Method");
  61.  
    }
  62.  
     
  63.  
    @AfterGroups(groups={"testTwo"})
  64.  
    public void afterGroupTwo(){
  65.  
    System.out.println("After Group testTwo Method");
  66.  
    }
  67.  
    @BeforeMethod
  68.  
    public void beforeMethod(){
  69.  
    System.out.println("Before Method");
  70.  
    }
  71.  
     
  72.  
    @AfterMethod
  73.  
    public void afterMethod(){
  74.  
    System.out.println("After Method");
  75.  
    }
  76.  
     
  77.  
    @Test(groups={"testOne"})
  78.  
    public void testOne(){
  79.  
    System.out.print("Test One Method");
  80.  
    }
  81.  
     
  82.  
    @Test(groups={"testTwo"})
  83.  
    public void testTwo(){
  84.  
     
  85.  
    System.out.print("Test Two Method");
  86.  
    }
  87.  
     
  88.  
    @Test
  89.  
    public void testThree(){
  90.  
     
  91.  
    System.out.println("Test Third Method");
  92.  
    }
  93.  
     
  94.  
     
  95.  
    }

alltestng.xml文件中增加如下配置

  1.  
    <?xml version="1.0" encoding="UTF-8"?>
  2.  
    <!-- 只执行某个包 -->
  3.  
    <suite name="Include Package Suite" verbose="1">
  4.  
    <test name="Include Package Test">
  5.  
    <packages>
  6.  
    <package name="test.*">
  7.  
    <include name="test.beforafter" />
  8.  
    </package>
  9.  
    </packages>
  10.  
    </test>
  11.  
    </suite>

执行后的顺序如下:

Before Suite Method
Before Test Method
Before Class Method
Before Group testOne Method
Before Method
Test One Method
After Method
After group testOne Method
Before Method
Test Third Method
After Method
Before Group testTwo Method
Before Method
Test Two Method
After Method
After Group testTwo Method
After Class Method
After Test Method
After Suite Method

TestNG入门——注解之Before/After的更多相关文章

  1. testng入门教程12 TestNG执行多线程测试

    testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...

  2. TestNG 入门教程【转】

    TestNG 入门教程[转] 国庆7天假期,大部分朋友都出去旅游了,微信圈里全是晒旅游的照片, 东南亚游,欧洲游呀,真是羡慕呀. 悲惨的我只去了上海野生动物园, 在家休息,利用这段假期,把之前学过的东 ...

  3. JAVA基础学习之IP简述使用、反射、正则表达式操作、网络爬虫、可变参数、了解和入门注解的应用、使用Eclipse的Debug功能(7)

    1.IP简述使用//获取本地主机ip地址对象.InetAddress ip = InetAddress.getLocalHost();//获取其他主机的ip地址对象.ip = InetAddress. ...

  4. TestNG 入门指导——理解testng.xml执行/不执行某个包,某个类,某个方法

    这一篇我们主要学习如下几个知识点: ⑴关于testng.xml ⑵创建一个测试套件 ⑶执行testng.xml ⑷在测试套件中创建多个测试用例 ⑸在用例中增加class,packages, metho ...

  5. testng入门教程16数据驱动(把数据写在xml)

    testng入门教程16数据驱动(把数据写在xml) testng入门教程16数据驱动(把数据写在xml)把数据写在xml文件里面,在xml文件右键选择runas---testng执行 下面是case ...

  6. testng入门教程2用TestNG编写测试及执行测试

    编写TestNG测试基本上包括以下步骤: 测试和编写业务逻辑,在代码中插入TestNG的注解.. 添加一个testng.xml文件或build.xml中在测试信息(例如类名,您想要运行的组,等..) ...

  7. TestNG入门到...

    目录 一.概述 二.@Test注解常用参数 三.测试中常用的断言(assert) 四.TestNG常用注解及使用 五.配置文件xml常用标签 六.参数传递 七.测试报告 一.概述 1.TestNG是一 ...

  8. TestNG基本注解

    TestNG的注解: 注解 描述 @BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中. @AfterSuite 注解的方法将只运行一次此套件中的所有测试都运行之后. @Befor ...

  9. 【转】TestNG常用注解

    http://blog.csdn.net/d6619309/article/details/52435084 TestNG的注解大部分用在方法级别上.常用的注解列举如下: 1. Before类别和Af ...

随机推荐

  1. 正则表达式(RegEx)官方手册/权威指南【Python】

    前言 正则表达式(称为RE,或正则,或正则表达式模式)本质上是嵌入在Python中的一种微小的.高度专业化的编程语言,可通过 re 模块获得. 使用这种小语言,你可以为要匹配的可能字符串集指定规则:此 ...

  2. 2.Shell脚本中的set指令,比如set -x 和 set -e

    set参数介绍 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至环境变量. -b 使被中止的后台程序立刻回报执行状态. -C 转向所产生的文件无 ...

  3. 北理工机器人队RM视觉组学习参考汇总(持续更新中)

    欢迎大家有意加入北理工机器人队参与到视觉组的工作中.在大家能够正式作为队员参与到视觉组的准备工作之前,北理机器人队需要对各位进行培训.这篇文章主要面向有志于参加机器人队视觉组的同学.同时,欢迎所有对相 ...

  4. Java内存泄漏解析!

    前言: 内存管理是Java最重要的优势之一,你只需创建对象,Java垃圾收集器会自动负责分配和释放内存.但是,情况并不那么简单,因为在Java应用程序中经常发生内存泄漏. 本章会说明什么是内存泄漏,为 ...

  5. vue开发相关问题以及解决方案

    1.使用ref获取到dom元素,但是无法获取到dom元素的样式? 给div盒子加上<div ref="remove">, 在控制台打印为undefined. 此时我们打 ...

  6. android studio学习----如何创建一个库项目

    首先,打开Android studio的软件工具,进入到界面中点击菜单的“file”选项. 2 在弹出的下拉的菜单中,可以看到的是为"New Module“的选项点击进入.   3 进入到c ...

  7. WPE 过滤器 高级滤镜

    与普通滤镜区别就是: 普通滤镜固定位置 高级滤镜固定数值 普通滤镜 指定位置1~6,对应发送数据的固定1~6字节 高级滤镜 首先,勾选高级-自发现有连锁位置 记得,偏移001对应修改000位置,也可称 ...

  8. 结对项目(JAVA)

    项目成员: 邓镇港 3117004608 陈嘉欣 3117004604 一.Github项目地址: https://github.com/kestrelcjx/operation_expression ...

  9. 浅谈MongoDB基础及架构

    1.简述MongDB是一个强大.灵活而可扩展的数据存储系统,其将强大的可扩展特性与关系库最有用的特性进行了整合,像:次级索引,范围查询和排序等特性.而MongDB也内建了类似MapReduce汇聚和地 ...

  10. LDA-作为线性判别 降维 推导

    LDA 降维原理 前面对 LDA 作为作为分类器 有详细推导, 其核心就是 贝叶斯公式, 已知全概率, 求(条件概率)最大先验概率, 类似的问题. 而 LDA 如果作为 降维 的原理是: a. 将带上 ...