前言

继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告。下一篇为HTTP接口实战(国家气象局接口自动化测试)

2.2.2.1 新建JAVA工程

2.2.2.2 引入Lib库

2.2.2.3 检查testng报告配置

2.2.2.4 编写测试用例

2.2.2.5 执行用例

2.2.3 基础实例2

2.2.3.1编写测试用例

2.2.3.2执行用例

因原来没有保留相关内容,以下实例均为本次总结再次编写,,如转载还请保留出处与作者姓名Findyou,谢谢!

2.1  TestNG与JUnit对比

为了文章的完整性,从网络摘抄部分文字介绍相关内容。

官网:http://testng.org/doc/index.html

不错的入门介绍: http://www.yiibai.com/testng/

2.1.1 JUnit缺点

  • 最初的设计,使用于单元测试,现在只用于各种测试
  • 不能依赖测试
  • 配置控制欠佳(安装/拆卸)
  • 侵入性(强制扩展类,并以某种方式命名方法)
  • 静态编程模型(不必要的重新编译)
  • 不同的适合管理复杂项目中的测试可以是非常棘手

2.1.2 TestNG是什么?

TestNG按照其文档的定义是:

  • TestNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入了一些新的功能,使其功能更强大,使用更方便。
  • TestNG是一个开源自动化测试框架;TestNG表示下一代。 TestNG是类似于JUnit(特别是JUnit 4),但它不是一个JUnit扩展。它的灵感来源于JUnit。它的目的是优于JUnit的,尤其是当测试集成的类。 TestNG的创造者是Cedric Beust(塞德里克•博伊斯特)
  • TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中。

2.1.3TestNG的特点

  • 注解
  • TestNG使用Java和面向对象的功能
  • 支持综合类测试(例如,默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)
  • 独立的编译时间测试代码运行时配置/数据信息
  • 灵活的运行时配置
  • 主要介绍“测试组”。当编译测试,只要问TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等
  • 支持依赖测试方法,并行测试,负载测试,局部故障
  • 灵活的插件API
  • 支持多线程测试

2.2  TestNG注解与基础实例

2.2.1 注解

注解

描述

@BeforeSuite

注解的方法将只运行一次,运行所有测试前此套件中。

@AfterSuite

注解的方法将只运行一次此套件中的所有测试都运行之后。

@BeforeClass

注解的方法将只运行一次先行先试在当前类中的方法调用。

@AfterClass

注解的方法将只运行一次后已经运行在当前类中的所有测试方法。

@BeforeTest

注解的方法将被运行之前的任何测试方法属于内部类的 <test>标签的运行。

@AfterTest

注解的方法将被运行后,所有的测试方法,属于内部类的<test>标签的运行。

@BeforeGroups

按组( @Test(groups= "findyou") )运行时,此注解在组(findyou组)执行之前运行,可做组(findyou组)执行之前,初始化数据准备类工作。

@AfterGroups

按组( @Test(groups= "findyou") )运行时,此注解在组(findyou组)执行之后运行,可做组(findyou)执行之后,数据还原类工作。

@BeforeMethod

注解的方法将每个测试方法之前运行。

@AfterMethod

被注释的方法将被运行后,每个测试方法。

@DataProvider

标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。

该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

@Factory

作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。

@Listeners

定义一个测试类的监听器。

@Parameters

介绍如何将参数传递给@Test方法。

@Test

标记一个类或方法作为测试的一部分。

2.2.2  基础实例1

2.2.2.1  新建JAVA工程

新建: NEW --> JAVA Project --> 输入工程名称  --> Finish
详请Google OR 百度

2.2.2.2  引入Lib库

2.2.2.3检查testng报告配置

2.2.2.4 编写测试用例

  1. package findyou.testcase; 
  2. import org.testng.annotations.Test;
  3.  
  4. public class TestCaseStudy {
  5.  
  6.     // test case 1
  7.  
  8.     @Test
  9.  
  10.     public void testCase1() {
  11.  
  12.         System.out.println("in test case 1");
  13.  
  14.     }
  15.  
  16. } 

2.2.2.5 执行用例

执行:右击JAVA文件,Run as -- > TestNG Test

  • 执行结果:

  • 测试报告:

  • 浏览器查看:

概要

详细

2.2.3 基础实例2

2.2.3.1 编写测试用例

  1. import org.testng.annotations.AfterClass;
  2. import org.testng.annotations.AfterSuite;
  3.  
  4. import org.testng.annotations.AfterTest;
  5.  
  6. import org.testng.annotations.BeforeClass;
  7.  
  8. import org.testng.annotations.BeforeSuite;
  9.  
  10. import org.testng.annotations.BeforeTest;
  11.  
  12. import org.testng.annotations.Test;
  13.  
  14. import org.testng.annotations.AfterMethod;
  15.  
  16. import org.testng.annotations.BeforeMethod;
  17.  
  18. public class TestngStudy {
  19.  
  20.     // test case 1
  21.  
  22.         @Test
  23.  
  24.         public void testCase1() {
  25.  
  26.             System.out.println("This is a test case 1");
  27.  
  28.         }
  29.  
  30.         // test case 2
  31.  
  32.         @Test
  33.  
  34.         public void testCase2() {
  35.  
  36.             System.out.println("This is a test case 2");
  37.  
  38.         }
  39.  
  40.         @BeforeMethod
  41.  
  42.         public void beforeMethod() {
  43.  
  44.             System.out.println("This is beforeMethod");
  45.  
  46.         }
  47.  
  48.         @AfterMethod
  49.  
  50.         public void afterMethod() {
  51.  
  52.             System.out.println("This is afterMethod");
  53.  
  54.         }
  55.  
  56.         @BeforeClass
  57.  
  58.         public void beforeClass() {
  59.  
  60.             System.out.println("This is beforeClass");
  61.  
  62.         }
  63.  
  64.         @AfterClass
  65.  
  66.         public void afterClass() {
  67.  
  68.             System.out.println("This is afterClass");
  69.  
  70.         }
  71.  
  72.         @BeforeTest
  73.  
  74.         public void beforeTest() {
  75.  
  76.             System.out.println("This is beforeTest");
  77.  
  78.         }
  79.  
  80.         @AfterTest
  81.  
  82.         public void afterTest() {
  83.  
  84.             System.out.println("This is afterTest");
  85.  
  86.         }
  87.  
  88.         @BeforeSuite
  89.  
  90.         public void beforeSuite() {
  91.  
  92.             System.out.println("This is beforeSuite");
  93.  
  94.         }
  95.  
  96.         @AfterSuite
  97.  
  98.         public void afterSuite() {
  99.  
  100.             System.out.println("This is afterSuite");
  101.  
  102.         }
  103.  
  104. } 

2.2.3.2 执行用例

[TestNG] Running:

C:\Users\Albert\AppData\Local\Temp\testng-eclipse--65898469\testng-customsuite.xml

This is beforeSuite

This is beforeTest

This is beforeClass

This is beforeMethod

This is a test case 1

This is afterMethod

This is beforeMethod

This is a test case 2

This is afterMethod

This is afterClass

This is afterTest

PASSED: testCase1

PASSED: testCase2

===============================================

Default test

Tests run: 2, Failures: 0, Skips: 0

===============================================

This is afterSuite

===============================================

Default suite

Total tests run: 2, Failures: 0, Skips: 0

===============================================

[TestNG] Time taken by org.uncommons.reportng.HTMLReporter@5f8ed237: 217 ms

以上TestNG学习基本了解完毕,下一篇将通过对国家气象局提供的天气接口的测试,来讲解HTTP接口的自动化测试,与结果断言。

原创,如转载还请保留出处与作者姓名Findyou,谢谢!

APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例的更多相关文章

  1. APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例

    前言     前两篇普及相关基础知识后,本篇主要对举例对国家气象局接口自动化测试进行讲解(Get请求及结果断言),以达到自动化测试入门目的,除了前两篇的一些了解外,需要有一定的JAVA知识(HTTP相 ...

  2. APP接口自动化测试JAVA+TestNG(一)之框架环境搭建

    前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较 ...

  3. 零成本实现接口自动化测试 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  4. (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service

    本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...

  5. 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告

    在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...

  6. 接口自动化测试框架搭建 – Java+TestNG 测试Restful service

    接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...

  7. Maven+TestNG+ReportNG/Allure接口自动化测试框架初探(上)

    转载:http://www.51testing.com/html/58/n-3721258.html 由于一直忙于功能和性能测试,接口自动化测试框架改造的工作被耽搁了好久.近期闲暇一些,可以来做点有意 ...

  8. 手把手教你接口自动化测试 – SoapUI & Groovy

    手把手教你接口自动化测试 – SoapUI & Groovy http://www.cnblogs.com/wade-xu/p/4236295.html 关键词:SoapUI接口测试,接口自动 ...

  9. 手把手教你接口自动化测试 – SoapUI & Groovy【转】

    手把手教你接口自动化测试 – SoapUI & Groovy Posted on 2015-01-21 09:38 WadeXu 阅读(12741) 评论(10) 编辑 收藏 手把手教你接口自 ...

随机推荐

  1. Mysql常用表操作 | 单表查询

    160905 常用表操作 1. mysql -u root -p 回车 输入密码   2. 显示数据库列表 show databases     3. 进入某数据库 use database data ...

  2. 自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解

    '*************************************************************************'**模 块 名:自写函数VB6 STUFF函数 和 ...

  3. min.js反压缩

    给个网址自己体会.. http://jsbeautifier.org/ 当需要修改min.js中的代码时,把min.js文件ctrl+c   ctrl+v扔到上面的网页里,点击beautify 即可

  4. C#基础_单例模式

    控制某个类型的实例数量-唯一一个 class Program { static void Main(string[] args) { test t1 = test.GetInstance(); tes ...

  5. 一起来测试天兔Lepus3.8 Beta版本的MSSQL部分

    一起来测试天兔Lepus3.8 Beta版本的MSSQL部分 产品介绍:http://www.lepus.cc/下载地址:http://www.lepus.cc/soft/18手册地址:http:// ...

  6. 开源消息队列:NetMQ

    NetMQ 是  ZeroMQ的C#移植版本. ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展.它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问. ...

  7. SOA相关资料整理分享

    昨@幸福框架同学问能否推荐SOA一些资,.想想之前看过不少资料文档,就整理分享下,有需要的可以参考下. 文章链接 理解面向服务的体系结构中企业服务总线场景和解决方案,第 1 部分 SOA 和 web ...

  8. C语言 · 最小乘积(基本型)

    问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小 ...

  9. 《Entity Framework 6 Recipes》中文翻译系列 (18) -----第三章 查询之结果集扁平化和多属性分组

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-14  结果集扁平化 问题 你有一对多关联的两个实体,你想通过一个查询,获取关联 ...

  10. Maven 最佳实践

    持续不断地学习maven Maven是一个很好的工具,但同时也拥有陡峭的学习曲线.因此,将 http://books.sonatype.com/mvnref-book/reference/ 加入到你的 ...