一、 概论
        TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用来做集成测试。
        因为TestNG是从Junit的思想构建而来,所以TestNG具备junit等所不具备的多重功能。而且TestNG目前的使用比较广泛,google的一个selenium自动化项目组即采用的是selenium rc的java 接口+ testNG结合的方式。
        写一个测试通常分为三步:
1.编写测试业务逻辑,并且在你的代码中插入 TestNG annotations 。
2.在 testng.xml 或 build.xml 添加你的测试信息。例如类名,希望运行的组等等
3.运行TestNG.
 
文档中会使用到如下的概念:
1.一套测试(suite)由一个XML文件所表示。它能够包含一个或者多个测试,<suite> 标记来定义。
2.test由<test>标记来表示一个测试,并且可以包含一个或者多个TestNG类。
3.TestNG 类是包含至少一个TestNG annotation的java类,由<class>标签描述并包含一个或多个测试方法。
4.测试方法,就是一个普通的Java方法,在由@Test标记。
 
testNG.xml
testNG的运行需要一个配置文件,默认为testng.xml,其描述了要运行哪些测试等配置。
编写testNG.xml如果没有书写提示,给在头部引入
<!DOCTYPE suite PUBLIC "--//beust.com//testng//testng 1.0//EN" "http://beust.com/testng/testng-1.0.dtd" >就会有提示了
 
注意:TestNG使用的是 正则表达式,而不是通配符。注意这二者的区别
例如:"anything" 是匹配于 ".*" -- 点和星号 -- 而不是星号 "*"
Groups
testNG可以将各个method存放在不同的group里面,然后运行的时候可以指定要运行的group。Group指定的方式如下:
  1. @Test(groups = {"fast", "unit", "database" })
  2. public voidrowShouldBeInserted() {}
二、实例
1.创建测试类Sum

2.创建TestNG类
  1. package com.testNg;
  2. import org.testng.annotations.Test;
  3. import static org.testng.Assert.assertEquals;
  4. import com.hpp.Sum;
  5. public class NewTest {
  6. private Sum newSum = new Sum();
  7. @Test(groups = { "t1", "t2" })
  8. public void f() {
  9. int mysum = newSum.add(1, 2);
  10. assertEquals(3, mysum, "Right");
  11. }
  12. @Test(groups = { "t2" })
  13. public void f2() {
  14. int mysum = newSum.add(2, 2);
  15. assertEquals(3, mysum, "Right");// 错误的用例
  16. }
  17. @Test(groups = { "t1" })
  18. public void f3() {
  19. int mysum = newSum.add(1, 2);
  20. assertEquals(3, mysum, "Right");
  21. }
  22. }
3.修改testNG.xml
 
  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <suite name="Suite" parallel="false">
  3. <testnametestname = Test ">
  4. <groups>
  5. <run>
  6. <includenameincludename = t1 " />
  7. </run>
  8. </groups>
  9. <classes>
  10. <classnameclassname = com.testNg.NewTest " />
  11. </classes>
  12. </test><!-- Test -->
  13. </suite> <!--Suite -->
当运行t1测试组时,就仅仅运行f()和f3()方法
运行结果
 

修改testNG.xml运行t2测试组,其中f2()方法故意留个错误,我们看下出现bug的情况
 
 
本文转载自:http://blog.sina.com.cn/bestfeiyong

最新文章

  1. sql删除前导和后缀
  2. html2canvas根据DOM元素样式实现网页截图
  3. Sqlite注入测试
  4. paip.判断文件是否存在uapi python php java c#
  5. JavaScript强化教程——Cocos2d-JS中JavaScript继承
  6. javascript与服务器2
  7. 业务对象和BAPI
  8. .Net 乱序方法
  9. MYSQL数据库学习七 视图的操作
  10. MOOS学习笔记——多线程
  11. 解决pgpool启动报错 ifup[/sbin/ip] doesn&#39;t have setuid bit
  12. Linux第七节课学习笔记
  13. JavaScript 对象属性底层原理
  14. 【分布式搜索引擎】Elasticsearch写入和读取数据过程
  15. 一些公司的面试题目 U3D
  16. 转载 http://blog.csdn.net/dengta_snowwhite/article/details/6418384
  17. [转]链接中 href=&#39;#&#39; 和 href=&#39;###&#39; 的区别以及优缺点
  18. 关于电脑宽带显示连接 qq可以登录 但是无法上网的问题
  19. 原生js创建模态框
  20. Linux用ssh登陆出现“Too many authentication failures for root”

热门文章

  1. sql 时间日期格式化
  2. vue-music 关于Player (播放器组件)--播放和进度条
  3. 一个微服务+DDD(领域驱动设计)的代码结构示例
  4. python 字符串,数学之间的不可描述的关系
  5. smail修改字符串 汉字
  6. cogs 2039. 树的统计
  7. [xsy2282]cake
  8. RestFramework
  9. json,xml,html三种数据格式
  10. fmri 实验设计 / 范式设计/ paradigm design