testng入门教程3用TestNG执行case的顺序
本教程介绍了TestNG中执行程序的方法,这意味着该方法被称为第一和一个接着。下面是执行程序的TestNG测试API的方法的例子。
创建一个Java类文件名TestngAnnotation.java在C:\>TestNG_WORKSPACE测试注解。
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 TestngAnnotation {
// test case 1
@Test
public void testCase1() {
System.out.println("in test case 1");
} // test case 2
@Test
public void testCase2() {
System.out.println("in test case 2");
} @BeforeMethod
public void beforeMethod() {
System.out.println("in beforeMethod");
} @AfterMethod
public void afterMethod() {
System.out.println("in afterMethod");
} @BeforeClass
public void beforeClass() {
System.out.println("in beforeClass");
} @AfterClass
public void afterClass() {
System.out.println("in afterClass");
} @BeforeTest
public void beforeTest() {
System.out.println("in beforeTest");
} @AfterTest
public void afterTest() {
System.out.println("in afterTest");
} @BeforeSuite
public void beforeSuite() {
System.out.println("in beforeSuite");
} @AfterSuite
public void afterSuite() {
System.out.println("in afterSuite");
} }
接下来,让我们创建的文件 testng.xml 在 C:\ > TestNG_WORKSPACE 执行注解。 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
<test name="test1">
<classes>
<class name="TestngAnnotation"/>
</classes>
</test>
</suite>
编译使用javac测试用例类。
C:\TestNG_WORKSPACE>javac TestngAnnotation.java
现在运行testng.xml,将运行提供的测试用例类中定义的测试用例。
C:\TestNG_WORKSPACE>java org.testng.TestNG testng.xml
验证输出。
in beforeSuite
in beforeTest
in beforeClass
in beforeMethod
in test case 1
in afterMethod
in beforeMethod
in test case 2
in afterMethod
in afterClass
in afterTest
in afterSuite ===============================================
Suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================
见上面的输出,TestNG是执行过程如下:
首先所有beforeSuite()方法只执行一次。
最后,afterSuite的()方法只执行一次。
即使方法 beforeTest(), beforeClass(), afterClass() 和afterTest() 方法只执行一次。
beforeMethod()方法执行每个测试用例,但在此之前执行的测试用例。
afterMethod()方法执行每个测试用例,但测试用例执行后。
In between beforeMethod() and afterMethod() each test case executes.
使用注释
传统的方式来表示JUnit3中的测试方法是测试自己的名字前缀。标记一个类中的某些方法,具有特殊的意义,这是一个非常有效的方法,但命名不很好的扩展(如果我们想添加更多标签为不同的框架?),而非缺乏灵活性(如果我们要通过额外的参数测试框架)。
注释被正式加入到JDK 5中的Java语言和TestNG作出选择使用注释注释测试类。
这里是TestNG的支持列表中的注解:
| 注解 | 描述 |
|---|---|
| @BeforeSuite | 注解的方法将只运行一次,运行所有测试前此套件中。 |
| @AfterSuite | 注解的方法将只运行一次此套件中的所有测试都运行之后。 |
| @BeforeClass | 注解的方法将只运行一次先行先试在当前类中的方法调用。 |
| @AfterClass | 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。 |
| @BeforeTest | 注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。 |
| @AfterTest | 注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。 |
| @BeforeGroups | 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。 |
| @AfterGroups | 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。 |
| @BeforeMethod | 注解的方法将每个测试方法之前运行。 |
| @AfterMethod | 被注释的方法将被运行后,每个测试方法。 |
| @DataProvider |
标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。
该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。 |
| @Factory | 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。 |
| @Listeners | 定义一个测试类的监听器。 |
| @Parameters | 介绍如何将参数传递给@Test方法。 |
| @Test | 标记一个类或方法作为测试的一部分。 |
使用注释的好处
以下是一些使用注释的好处:
- TestNG的标识的方法关心寻找注解。因此,方法名并不限于任何模式或格式。
- 我们可以通过额外的参数注解。
- 注释是强类型的,所以编译器将标记任何错误。
- 测试类不再需要任何东西(如测试案例,在JUnit3)扩展。
文章转载自:易百教程 [http://www.yiibai.com]
本文标题:TestNG执行程序
转载请保留原文链接:http://www.yiibai.com/html/testng/2013/0914296.html
testng入门教程3用TestNG执行case的顺序的更多相关文章
- testng入门教程4用TestNG执行case
使用TestNG类执行测试用例.这个类的主入口点在TestNG的框架运行测试.用户可以创建自己的TestNG的对象,并调用它以许多不同的方式: 在现有的testng.xml 合成testng.xml, ...
- testng入门教程2用TestNG编写测试及执行测试
编写TestNG测试基本上包括以下步骤: 测试和编写业务逻辑,在代码中插入TestNG的注解.. 添加一个testng.xml文件或build.xml中在测试信息(例如类名,您想要运行的组,等..) ...
- testng入门教程1在testng运行一个简单的testcase
在eclips运行java,创建一个Java类文件名TestNGSimpleTest C:\ > TestNG_WORKSPACE import org.testng.annotations. ...
- testng入门教程12 TestNG执行多线程测试
testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...
- testng入门教程16数据驱动(把数据写在xml)
testng入门教程16数据驱动(把数据写在xml) testng入门教程16数据驱动(把数据写在xml)把数据写在xml文件里面,在xml文件右键选择runas---testng执行 下面是case ...
- TestNG 入门教程【转】
TestNG 入门教程[转] 国庆7天假期,大部分朋友都出去旅游了,微信圈里全是晒旅游的照片, 东南亚游,欧洲游呀,真是羡慕呀. 悲惨的我只去了上海野生动物园, 在家休息,利用这段假期,把之前学过的东 ...
- TestNG 入门教程
原文出处:http://www.cnblogs.com/TankXiao/p/3888070.html 阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装T ...
- TestNG入门教程
阅读目录 TestNG介绍 在Eclipse中在线安装TestNG 在Eclipse中离线安装Testng TestNG最简单的测试 TestNG的基本注解 TestNG中如何执行测试 使用testt ...
- TestNG入门教程-12-Java代码执行testng.xml和失败后重跑
前面我们都在IDEA上右键testng.xml文件来运行testng用例,这个在编写测试用例过程是 可以这么做,但是,如果测试用例写完了,也是这么做吗?有没有什么方法,例如自动化去实现.测试脚本维护后 ...
随机推荐
- path 与classpath针对JAVA来说
Path 路径,是java编译时需要调用的程序(如java,javac等)所在的地方CLASSPATH 类的路径,在编译运行java程序时,如果有调用到其他类的时候,在classpath中寻找需要的类 ...
- [Sdoi2016]生成魔咒[SAM or SA]
4516: [Sdoi2016]生成魔咒 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1017 Solved: 569[Submit][Statu ...
- 【CF633H】Fibonacci-ish II 莫队+线段树
[CF633H]Fibonacci-ish II 题意:给你一个长度为n的序列$a_i$.m个询问,每个询问形如l,r:将[l,r]中的所有$a_i$排序并去重,设得到的新数列为$b_i$,求$b_1 ...
- iOS取整
小数向上取整,指小数部分直接进1 x=3.14,ceilf(x)=4 小数向下取整,指直接去掉小数部分 x=3.14,floor(x)=3
- python selenium中等待元素出现及等待元素消失操作
在自动化测试中,很多时候都会有等待页面某个元素出现后能进行下一步操作,或者列表中显示加载,直到加载完成后才进行下一步操作,但时间都不确定,如下图所示 幸运的是,在selenium 2后有一个模块exp ...
- 冒泡排序算法的 python 实现与 C 的比较
昨天用c写了简单的冒泡排序算法之后,正好最近在学 python,也想试试用python实现一下. 总体感觉,对于这种简答的小程序,python 确实充分体现了他简洁,易懂的特点.写起来特别流畅,舒服. ...
- ELK篇---------elasticsearch集群安装配置
说明: 本次ELK的基础配置如下: 虚拟机:vmware 11 系统:centos7.2 两台 IP:172.16.1.15/16 一.下载es wget https://download.elas ...
- 2.0CNN
介绍 https://www.youtube.com/watch?v=jajksuQW4mc https://www.youtube.com/watch?v=2-Ol7ZB0MmU https://w ...
- 11.21 CSS学习-上午
font-family:设置文本的字体序列,应当多设置几个,作为后备机制,如果浏览器不支持第一种字体,它将尝试下一种字体.字体序列的名字超过一个字需要使用引号,多个字体序列用逗号分隔指明:{font- ...
- CCCC训练赛一些模板 struct sstream
重载与构造 struct node { friend bool operator< (node n1, node n2) { return n1.priority > n2.priorit ...