此文主要讲述用 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. 【BZOJ】3039: 玉蟾宫(DP/单调栈)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3039 每次看到我的提交都有点淡淡的忧伤T_T.. 看到此题我想到用前缀和维护点ij向左和向上能拓展的 ...

  2. java中&和&&的区别和联系

    我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到 &和&& 然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦 在这篇blog中, ...

  3. Idea_Maven配置

    操作方式:在install上右键——>Run***install 出现Run Configurations ——>右键——>Edit Run Configuration 1.Inst ...

  4. MySQL配置SQL Assistant提示

    以前开发一直使用SQL Server数据库,提示插件采用的就是SQL Assistant,写起脚本来相当有效率.这段时间公司转型要采用MySQL数据库,试用了mysql workbench.mysql ...

  5. iis浏览网页时提示无法显示 XML 页

    无法显示 XML 页.         使用 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试.          处理资源 'http://localhost/ 时出错.第 1 ...

  6. sqlmap遇到url重写的示例

    url_rewrite 这个问题 国内外的坛子里都有人问. D:\cygwin\pentest\database\sqlmap\doc \faq.pdf 下面是官方给的解答. 1.15 How to ...

  7. 【iCore2 模块相关资料】发布模块DEMO 代码包,目前支持 iM_TFT30、 iM_LAN和 iM_RGB 三个模块

    iCore2 模块底板 和部分模块发布了,所以我们做了一个 DEMO 代码包,此代码包现在有以下功能: 1.支持 iM_TFT30 3寸触摸液晶模块(硬件已发布): 2.支持 iM_LAN 100M以 ...

  8. GridVeiw 使用

    1. 因使用的是 Mongodb,因此要在 ActiveDataProvider 中指定 key 属性 2. 自定义表格中的按钮 'class' => 'yii\grid\ActionColum ...

  9. html5_d登陆界面_注册界面

    <!DOCTYPE html><html><head><script type="text/javascript">function ...

  10. anisotropy texture filtering

    http://www.extremetech.com/computing/51994-the-naked-truth-about-anisotropic-filtering 1. 为什么在纹理采样时需 ...