APP接口自动化测试JAVA+TestNG(二)之TestNG简介与基础实例
前言
继上篇环境篇后,本篇主要对TestNG进行介绍,给出最最基础的两个实例,通过本文后,学会并掌握TestNG测试用例的编写与运行,以及生成美化后的报告。下一篇为HTTP接口实战(国家气象局接口自动化测试)
2.2.2.1 新建JAVA工程2.2.2.2 引入Lib库2.2.2.3 检查testng报告配置2.2.2.4 编写测试用例
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简介与基础实例的更多相关文章
- APP接口自动化测试JAVA+TestNG(三)之HTTP接口测试实例
前言 前两篇普及相关基础知识后,本篇主要对举例对国家气象局接口自动化测试进行讲解(Get请求及结果断言),以达到自动化测试入门目的,除了前两篇的一些了解外,需要有一定的JAVA知识(HTTP相 ...
- APP接口自动化测试JAVA+TestNG(一)之框架环境搭建
前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较 ...
- 零成本实现接口自动化测试 – Java+TestNG 测试Restful service
接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...
- (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service
本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...
- 使用jmeter+ant进行接口自动化测试(数据驱动)之二:利用apache-ant执行测试用例并生成HTML格式测试报告
在 使用jmeter+ant进行接口自动化测试(数据驱动)之一 介绍了如何使用csv文件来批量管理接口 本次接着介绍如何利用apache-ant执行测试用例并生成HTML格式测试报告 ①下载安装 ap ...
- 接口自动化测试框架搭建 – Java+TestNG 测试Restful service
接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, ...
- Maven+TestNG+ReportNG/Allure接口自动化测试框架初探(上)
转载:http://www.51testing.com/html/58/n-3721258.html 由于一直忙于功能和性能测试,接口自动化测试框架改造的工作被耽搁了好久.近期闲暇一些,可以来做点有意 ...
- 手把手教你接口自动化测试 – SoapUI & Groovy
手把手教你接口自动化测试 – SoapUI & Groovy http://www.cnblogs.com/wade-xu/p/4236295.html 关键词:SoapUI接口测试,接口自动 ...
- 手把手教你接口自动化测试 – SoapUI & Groovy【转】
手把手教你接口自动化测试 – SoapUI & Groovy Posted on 2015-01-21 09:38 WadeXu 阅读(12741) 评论(10) 编辑 收藏 手把手教你接口自 ...
随机推荐
- Mysql常用表操作 | 单表查询
160905 常用表操作 1. mysql -u root -p 回车 输入密码 2. 显示数据库列表 show databases 3. 进入某数据库 use database data ...
- 自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解
'*************************************************************************'**模 块 名:自写函数VB6 STUFF函数 和 ...
- min.js反压缩
给个网址自己体会.. http://jsbeautifier.org/ 当需要修改min.js中的代码时,把min.js文件ctrl+c ctrl+v扔到上面的网页里,点击beautify 即可
- C#基础_单例模式
控制某个类型的实例数量-唯一一个 class Program { static void Main(string[] args) { test t1 = test.GetInstance(); tes ...
- 一起来测试天兔Lepus3.8 Beta版本的MSSQL部分
一起来测试天兔Lepus3.8 Beta版本的MSSQL部分 产品介绍:http://www.lepus.cc/下载地址:http://www.lepus.cc/soft/18手册地址:http:// ...
- 开源消息队列:NetMQ
NetMQ 是 ZeroMQ的C#移植版本. ZeroMQ是一个轻量级的消息内核,它是对标准socket接口的扩展.它提供了一种异步消息队列,多消息模式,消息过滤(订阅),对多种传输协议的无缝访问. ...
- SOA相关资料整理分享
昨@幸福框架同学问能否推荐SOA一些资,.想想之前看过不少资料文档,就整理分享下,有需要的可以参考下. 文章链接 理解面向服务的体系结构中企业服务总线场景和解决方案,第 1 部分 SOA 和 web ...
- C语言 · 最小乘积(基本型)
问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为:1 3 -5和-2 4 1 那么对应乘积取和的最小 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (18) -----第三章 查询之结果集扁平化和多属性分组
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-14 结果集扁平化 问题 你有一对多关联的两个实体,你想通过一个查询,获取关联 ...
- Maven 最佳实践
持续不断地学习maven Maven是一个很好的工具,但同时也拥有陡峭的学习曲线.因此,将 http://books.sonatype.com/mvnref-book/reference/ 加入到你的 ...