前言

继上篇环境篇后,本篇主要对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 编写测试用例

package findyou.testcase; 
import org.testng.annotations.Test; public class TestCaseStudy {     // test case 1     @Test     public void testCase1() {         System.out.println("in test case 1");     } } 

2.2.2.5 执行用例

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

  • 执行结果:

  • 测试报告:

  • 浏览器查看:

概要

详细

2.2.3 基础实例2

2.2.3.1 编写测试用例

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterSuite; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeSuite; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; public class TestngStudy {     // test case 1         @Test         public void testCase1() {             System.out.println("This is a test case 1");         }         // test case 2         @Test         public void testCase2() {             System.out.println("This is a test case 2");         }         @BeforeMethod         public void beforeMethod() {             System.out.println("This is beforeMethod");         }         @AfterMethod         public void afterMethod() {             System.out.println("This is afterMethod");         }         @BeforeClass         public void beforeClass() {             System.out.println("This is beforeClass");         }         @AfterClass         public void afterClass() {             System.out.println("This is afterClass");         }         @BeforeTest         public void beforeTest() {             System.out.println("This is beforeTest");         }         @AfterTest         public void afterTest() {             System.out.println("This is afterTest");         }         @BeforeSuite         public void beforeSuite() {             System.out.println("This is beforeSuite");         }         @AfterSuite         public void afterSuite() {             System.out.println("This is afterSuite");         } } 

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. linux时间同步ntp服务的安装与配置

    1.首先安装NTP [root@localhost /]# yum install ntp -y 2.修改NTP配置文件,添加NTP服务器的网络位置    /etc/ntp.conf # For mo ...

  2. for循环中的 else,break

  3. 微软开源.NET Core的执行引擎CoreCLR{转载}

    继去年12月宣布.NET Core开源之后,微软拥抱开源的决心又向前迈了一步,Microsoft于昨日在 .NET Framework Blog上 宣布开源.NET Core 的执行引擎 CoreCL ...

  4. 使用EF取数据库返回的数据

    目录 一.取oracle自定义函数返回的自定义类型. 一.取oracle自定义函数返回的自定义类型. 1.首先创建一个函数返回自定义类型集合 --1.建立自定义类型 CREATE OR REPLACE ...

  5. 剑指Offer面试题:32.数字在排序数组中出现的次数

    一.题目:数字在排序数组中出现的次数 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出4. 二.解题思路 2 ...

  6. AutoMapper使用手册(一)

    阅读目录 1. 介绍 2. 基本使用 3. 自动分割映射(Flattening) 4. 自定义字段映射(Projection) 5. 验证配置(Configuration validation) 介绍 ...

  7. [.net 面向对象程序设计进阶] (28) 结束语——告别2015

    [.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...

  8. Getting&Giving

    Technologies: Want to know: 1 emergency 1: 现在的工作即将需要的.要用到的技术 2 emergency 2: 现在的工作不相关.但公司相关的的技术 3 eme ...

  9. 我也来说说DDD~大话目录

    回到占占推荐博客索引 DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界! DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它 ...

  10. jquery中on/delegate的原理

    jquery中on/delegate的原理 早期版本中叫delegate, 后来有过live函数,再后来统一用on.下面的方法等效: // jQuery 1.3 $(selector).(events ...