此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序。

希望能对初学 TestNG 测试框架的亲们有所帮助。若有不足之处,敬请大神指正,不胜感激!

言归正传,以下为 TestNG 常用的 annotation 及其释义,敬请参阅。

@BeforeSuite:被此注解的方法将在所有测试运行之前运行该方法。

@AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法。

@BeforeTest: 被此注解的方法,将在测试运行之前运行。

@AfterTest: 被此注解的方法,将在测试运行之后运行。

@BeforeGroups:被此配置的方法,将在列表中的 group 前运行,这个方法保证在第一个属于这些组列表的测试方法调用前运行。

@AfterGroups:被此配置的方法,将在列表中的 group 后运行,这个方法保证在最后一个属于这些组列表的测试方法调用后运行。

@BeforeClass:被此注解的方法,将在当前类的第一个测试方法调用之前运行。

@AfterClass:被此注解的方法,将在当前类的所有测试方法调用之后运行。

@BeforeMethod:被此注解的方法,将在每个测试方法调用之前运行。

@AfterMethod:被此注解的方法,将在每个测试方法调用之后运行。

annotation 执行顺序:BeforeSuite > BeforeTest > BeforeClass > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite

实例源代码如下所示:

 /**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package main.java.aaron.sele.demo; import org.testng.Assert;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.DataProvider;
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; /**
* TestNG annotation(注解)执行顺序实例
*
* @author Aaron.ffp
* @version V1.0.0: autoUISelenium main.java.aaron.sele.demo TestNG_annotationDemo.java, 2015-1-23 00:57:24 Exp $
*/
public class TestNG_annotationDemo {
@Test(dataProvider = "add")
public void f(int a, int b, int s) {
System.out.println("Test");
Assert.assertEquals((a + b), s, a + " + " + b + " <> " + s);;
} @BeforeMethod
public void beforeMethod() {
System.out.println("BeforeMethod");
} @AfterMethod
public void afterMethod() {
System.out.println("AfterMethod");
} @DataProvider
public Object[][] add() {
System.out.println("DataProvider");
return new Object[][] {
new Object[] { 1, 3, 4 },
new Object[] { 2, 5, 7 },
new Object[] { 2, -5, -3 },
};
} @BeforeClass
public void beforeClass() {
System.out.println("BeforeClass");
} @AfterClass
public void afterClass() {
System.out.println("AfterClass");
} @BeforeTest
public void beforeTest() {
System.out.println("BeforeTest");
} @AfterTest
public void afterTest() {
System.out.println("AfterTest");
} @BeforeSuite
public void beforeSuite() {
System.out.println("BeforeSuite");
} @AfterSuite
public void afterSuite() {
System.out.println("AfterSuite");
}
}

TestNG annotation(注解)执行顺序演示实例

脚本执行结果如下所示:

annotation 执行顺序为:BeforeSuite > BeforeTest > DataProvider > BeforeMethod > Test > AfterMethod > AfterClass > AfterTest > AfterSuite

至此,TestNG学习-002-annotaton 注解概述及其执行顺序 顺利完结,希望此文能够给初识 TestNG 测试框架的您一份参考。

最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^

TestNG学习-002-annotaton 注解概述及其执行顺序的更多相关文章

  1. Java学习笔记__异常机制_try_catch_finally_return执行顺序

    package cn.xiaocangtian.Exception; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...

  2. Jmeter学习笔记03-元件作用域及执行顺序

    Jmeter可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的层级关系,随着元件所在域的不同,在执行时候,会有不同效果 层级关系和元件类型决定了在测试计划中各元件的执行顺序. 1)元件的作用域: jm ...

  3. JMeter学习之元件的作用域与执行顺序

    1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...

  4. testNG官方文档翻译-2 注解

    这里是一份TestNG中的可用注解及其属性的概述. 一.用于一个TestNG类的信息配置的注解: @BeforeSuite:被BeforeSuite注解的方法将在其所在suite中的所有test运行之 ...

  5. testng基础知识:注解的执行顺序

    1. 单类,无继承父子关系 code: public class basicTest { @BeforeSuite(alwaysRun = true) public void beforeSuite_ ...

  6. Java接口自动化测试之TestNG学习(二)

    在maven项目的pom.xml文件中导入TestNG <?xml version="1.0" encoding="UTF-8"?> <pro ...

  7. testNG 学习笔记 Day 1 使用功能详解

    TestSuite处理测试用例有6个规约(否则会被拒绝执行测试) A 测试用例必须是公有类(Public) B 测试用例必须继承与TestCase类 C 测试用例的测试方法必须是公有的( Public ...

  8. 最新学习springboot 配置注解

    一.概述      Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程.Spring Boot并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式. ...

  9. TestNG学习-001-基础理论知识

    此 文主要讲述用 TestNG 的基础理论知识,TestNG 的特定,编写测试过程三步骤,与 JUnit4+ 的差异,以此使亲对 TestNG 测试框架能够有一个简单的认知. 希望能对初学 TestN ...

随机推荐

  1. TYVJ P1002 谁拿了最多奖学金 Label:模拟 水

    背景 NOIP2005复赛提高组第一题 描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同:1)     院士奖学金,每人8000元,期末平均成绩高于80分( ...

  2. asp.net 微信企业号办公系统-表单及流程设计配置实例

    在环境搭建好之后,我们就来学习一下怎样快速创建一个流程,并执行和流转该流程(我们这里讲的只是入门,不涉及到具体流程参数设置). 创建一个流程步骤为:在数据库在创建表-->设计表单-->设置 ...

  3. li:hover在ie6下失效的解决方案

    li:hover在ie6下是无效的,它只在ie7以下版本有效.要解决这个问题有两个解决方法.一个是用js来解决,但是这种方法我不喜欢,因为它必需把js代码和css代码都放在html文件中.第二种是在每 ...

  4. 用Git进行协同开发

    用Git进行协同开发 问题场景描述 常常会遇到这样的协同场景:后台的同事和前端的同事需要共同开发一个新功能,而他们的代码相互依赖,所以需要不停地更新各自的代码进行联调. 对于这种场景,最简单的方式就是 ...

  5. 用javascript协助导入图片

    用javascript协助导入图片 需求 先说说需求.春节回家见爸妈,老爸迷上了摄影.他把平时的照片都上传到了 成都图片网, 这个成都图片网专门有一个 "快拍成都" 的版块,用于大 ...

  6. linux load average

    性能分析_linux服务器CPU_Load Average 理解Linux系统中的load average(图文版) 理解Load Average做好压力测试 top命令的Load average 含 ...

  7. [学习笔记]RAID及实验

    RAID: RAID 0 好比只用左手拿了一摞大饼放在那里,相比于只拿一张饼吃,吃的速度会加快.但是万一掉了,就没有了. RAID 1 好比左右手两手一边一个大饼,怎么样都有的吃.但是一只手掉了,还有 ...

  8. Mesa10.2在Win7上的编译

    Mesa10仍然支持Windwos/linux,但是编译方式已经不提供makefile或者workspace Building on windows requires several open-sou ...

  9. html 实体转换为字符:转换 UEditor 编辑器 ( 在 ThinkPHP 3.2.2 中 ) 保存的数据

    在 ThinkPHP 3.2.2 中使用 UEditor 编辑器保存文章内容时,数据库中保存的数据都被转义成实体,例如:&lt;p&gt;&lt;strong&gt;& ...

  10. twistd 启动Python服务

    twistd 启动Python服务 shell 脚本如下: #! /usr/bin/env sh MAIN_MODULE=pdf_task.py ROOT="/var/www/pdf/&qu ...