TestNG 搭建测试框架 自动化测试

框架层级及基本组件:    参考:https://www.cnblogs.com/jier888/p/8998724.html

Java作为开发语言

Maven管理项目及Jar包

Testng作为测试框架,管理测试用例集,生成测试报告

Selenium为测试工具

Testng被选为测试框架的优点

灵活的测试配置

测试用例可以更容易地进行分组

可以使用TestNG实现测试并行

支持数据驱动测试

内置的报告

注释可以帮助我们来组织使测试更容易

8.1 介绍框架层级及基本组件

框架层级及基本组件:

Testng的使用

Eclipse安装testng插件,便可支持testng语法

1.启动Eclipse,选择“Install New Software”。

2.输入网址为“http://beust.com/eclipse”,然后单击“Add”。

3.打开添加存储库对话框输入名称为“TestNG”,然后点击“OK”

4.点击“全Select All”和“TestNG”将被选择

5.检查被选中项目,然后单击“Next”,一直点击next,知道finish,安装好重启eclipse即可

IntelliJ IDEA自带testng插件

8.2 数据驱动及数据脚本分离

数据驱动及数据脚本分离:

数据驱动测试:从数据文件(如Excel文件、文本文件、XML文件或数据库等)中读取测试数据,然后通过变量传入事先编写或录制好的测试脚本中,这些变量既可传递测试输入数据也可传递测试输出的验证数据。测试数据只出现在数据文件中,测试脚本负责测试逻辑业务过程、测试状态以及数据文件读取。

因此,测试数据和测试脚本是分开存放的。数据文件中的每一行表示一组测试数据,通过循环遍历数据文件中的每一行,将数据逐一注入到相同的测试流程进行反复的测试验证。

数据驱动的核心:从数据文件中读取输入数据,将数据与测试脚本分离,从而可以在不修改测试脚本的情况下通过更新测试数据完成对测试用例的增加、更改和删除。通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。

 

数据驱动及数据脚本分离案例:

8.3 对象封装及共享使用

公共基础类,对象封装及共享使用

8.4 编写和执行自动化测试脚本

编写和执行自动化测试脚本

8.5 查看和分析自动化测试报告

查看和分析自动化测试报告

Testng生成的测试报告目录,默认启动页是target/surefire-reports/index.html

8.5 查看和分析自动化测试报告

查看和分析自动化测试报告

使用reportng优化后的报告如图

10.1 常用API接口协议介绍

HTTP协议 

超文本传输协议

它是用来在Internet上传送超文本的传送协议,运行在TCP/IP协议族之上,它可以使浏览器更加高效,使网络传输减少。

任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。

浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

Http协议接口请求的介绍

一个http请求报文由请求行(request line)、消息头部(header)、空行、请求正文四部分组成;

1、请求行

请求行由请求方法字段、URL字段和HTTP协议版本字段,组成,它们用空格分隔,例如:GET /index.html  HTTP/1.1

HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET和POST方法;

GET:当client要从server中读取文档时,使用GET方法。GET方法要求服务器将URL定位的资源放在响应报文的数据部分,回送给client。使用GET方法时,请求参数和对应的值附加在URL后面,利用一个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制,例如:  /index.jsp?id=100&op=bind

POST:当client给服务器提供信息较多时, 使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以key/value的形式出现,可以传递大量数据,可用来传递文件。

2、消息头部

请求头部由key/value键值对组成,每行一对,key和value用冒号":"分隔,请求头部通知服务器有关于client端的请求信息,典型的请求头:

User-Agent:产生请求的浏览器类型

Accept:client端可识别的内容类型列表

Host:请求的主机名,允许多个域名同处一个ip地址,即虚拟主机    

3、空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器请求头结束。对于一个完整的http请求来说空行是必须的,否则服务器会任务本次请求的数据尚未完全发送到server,处于等待状态

4、请求正文

请求数据不在GET方法中使用,而是在POST中使用。POST方法适用于需要client填写表单的场合,与请求数据相关的最常用的请求头是Content-Type 和Content-Length

Http协议接口返回状态代码介绍

常见状态代码、状态描述、说明 :

200 OK      //客户端请求成功

400 Bad Request  //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden  //服务器收到请求,但是拒绝提供服务

404 Not Found  //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后,可能恢复正常

Http协议接口实体报头介绍

请求和响应消息都可以传送一个实体。一个实体由实体报头域和实体正文组成,但并不是说实体报头域和实体正文要在一起发送,可以只发送实体报头域。实体报头定义了关于实体正文(eg:有无实体正文)和请求所标识的资源的元信息。

Content-Type实体报头域用语指明发送给接收者的实体正文的媒体类型

如:Content-Type:text/html;charset=ISO-8859-1 ,

Content-Type:application/json;

Content-Type:application/soap+xml;

Content-Type:application/x-www-form-urlencoded

HTTPS协议

超文本传输安全协议

它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。

HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

SOAP协议

简单对象访问协议

它是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息,SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。

SMTP协议

简单邮件传送协议

它是由源地址到目的地址传送邮件的一组规则,用来控制信件中转方式的一种协议。

SMTP使用的TCP端口号是25,接收端在TCP的25号端口等待发送端来的E-mail,发送端向接收方(即服务器)发出连接要求,一旦连接成功,即进行邮件信息交换,邮件传递结束后释放连接。

SNMP协议

简单网络管理协议

它是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议。

SNMP,由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。

FTP协议

文件传输协议

它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法,像传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。

FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。

10.2 API 接口自动化测试的基本原理

基于HTTP协议的自动化测试基本原理

1.模拟请求url和报文,准备测试数据

2.模拟客户端发送HTTP请求

3.模拟客户端从服务器接收返回报文

4.验证返回结果是否符合预期

原文地址:https://www.cnblogs.com/klb561/p/10259092.html

时间: 01-11

TestNG 搭建测试框架 自动化测试的相关文章

安卓测试框架的环境搭建

测试是开发很重要的一部分.有句话说,好的应用不是开发出来的,而是测出来的.虽然作为程序员我们并不需要很精通测试,但是我们还是需要了解一下测试的基本内容. 安卓中提供了一个测试框架给我们使用.我们只需要继承这个框架就可以进行单元测试. 准备工作 新建一个安卓项目,在新建两个类,一个用于做测试框架类,一个用于演示的工具类. 演示工具类没什么,只是为了演示而已. 这里我们重点说一下测试框架类. 环境搭建: 安卓中搭建测试框架类非常简单,只需要新建一个类,然后继承AndroidTestCase类就可以了

Spring TestContext测试框架

1.基于注解的TestContext测试框架,它采用注解技术可以让POJO成为Spring的测试用例,可以运行在Junit3.8 Junit4.4 TestNG等测试框架之下 2.直接使用Junit测试Spring程序存在的不足 1).导致Spring容器多次初始化问题 根据JUnit测试用例的调用流程,每执行一个测试方法都会重新创建一个测试用例实例并调用其setUp() 方法. 由于在一般情况下,我们都在setUp() 方法中初始化Spring 容器,这意味着测试用例中有多少个测试方法,Spr

Spring基于注解TestContext 测试框架使用详解

概述 Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以归结为以下 3 点: 1.基于注解的 IoC 功能:  2.基于注解驱动的 Spring MVC 功能:  3.基于注解的 TestContext 测试框架. Spring 推荐开发者使用新的基于注解的 TestContext 测试框架,本文我们将对此进行详细的讲述. 低版本的 Spring 所提供的 Spring 测试框架构在 JUnit 3.8 基础上扩展而来,它提供了若干个测试基类.而 Spring 2.5

手把手教你用Eclipse+TestNG搭建接口自动化测试框架

转载于:http://qa.blog.163.com/blog/static/190147002201510275306185/ 把群博里关于接口自动化的文章都看了一遍,都是关于测试过程中遇到的问题及解决方法,还没有框架搭建的博文.对于未做过接口自动化和java菜鸟的我,搭建好框架才是迈出的第一步.记录下搭建的过程,希望能够对想做接口自动化的同志们有一定的帮助.有些步骤较粗,若有问题,欢迎联系我. 一.环境安装 1.前提 安装好jdk 配置好Java环境变量 安装Eclips 这些网上都有,就不

TestNG测试框架在基于Selenium进行的web自动化测试中的应用

这个测试框架可以把写好的测试用例按自定义顺序执行,以Selenium WebDriver自动化测试用例为例: 1.新建一个名为forTestNg的java project,然后创建一个libs文件夹,导入所有和Selenium相关的jar包: 2.安装TestNG,在Eclipse中点击Help->Install New Software,点击Add,Location填写“http://beust.com/eclipse”,然后点击OK: 之后勾选TestNG,点击Next进行安装即可: 之后点

Java 使用POI操作EXCEL及测试框架搭建、测试开发的一些想法

无论是UI自动化测试还是接口自动化测试都需要进行数据驱动,一般很常见的一种方式就是用excel来管理数据,那么就涉及到一些代码对EXCEL的操作,之前我们介绍过用CSV来处理EXCEL,但是它的功能还不够强大.比如接口自动化测试框架搭建的时候我们用excel来进行数据驱动,用excel来进行用例的管理和测试结果的统计,那么我们就需要对excel进行读取,写入等编辑操作,如果做的更加全面的话还要对测试结果进行个统计. 先来谈下如何用excel来进行数据驱动吧.以我们公司的接口自动化测试框架为例,我

RF+Appium框架自动化测试系列一之(Mac下Appium环境搭建)万事开头难

Mac下Appium环境搭建: 消失了3个月,有一段时间没来园子更新博客了,各位看官见谅哈哈,消失是因为TestYao刚换了工作环境没外网,好多笔记没能及时的记录分享,以后有时间慢慢补上吧,这段时间主要接触了移动端app的自动化测试,公司为了快速把移动端自动化这块搞起来,试用几款目前流行的工具,腾讯的xtest定制版.神州数码的自动化测试平台.开源rf+appium框架. 经过一段试用最终还是选择了rf+appium主要原因有: 1.开源,网上社区活跃 2.扩展性强,针对不同项目不同的需求,封装

IDEA搭建ssm框架测试衍生出的问题The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Develop\jdk7\jdk1.7.0_79\bin;

最近玩起IDEA这开发工具,搭建ssm框架测试时,部署项目出现如下问题: 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Develop\jdk7\jdk1.7.0_79\bin;C:\Windows\Sun\Java\bin;C:\Windows

Spring TestContext测试框架搭建

同样是测试,JUnit和Spring TestContext相比,Spring TestContext优势如下: 1.Spring TestContext可以手动设置测试事务回滚,不破坏数据现场 2.在测试类中不用手动装配bean,只要一个@Autowired即可自动装配 ----------------分割线--------------------------- 本文记录web project和java project如何使用TestContext测试框架,首先介绍web project 现总

学习心得——测试框架浅析

笔者按:       在这一学期的软件测试课程学习中,我逐渐接触到了软件测试的相关知识,实现了从较为关注软件编写与实现等前端内容到逐渐理解软件测试等项目后期环节的跨 越与 转变.而在软件测试领域,我们经常会听到测试框架这个名词,那什么是测试框架?它在软件测试中起到什么样的作用?我将就自己浅薄的学习心得,在这里为大 家做一个简单的分析与交流. 正文:          我们先来看一下百度百科给出的关于“框架”一词的定义:“框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问