接口自动化测试文档解析.docx

上传人:b****1 文档编号:1750742 上传时间:2022-10-23 格式:DOCX 页数:13 大小:111.03KB
下载 相关 举报
接口自动化测试文档解析.docx_第1页
第1页 / 共13页
接口自动化测试文档解析.docx_第2页
第2页 / 共13页
接口自动化测试文档解析.docx_第3页
第3页 / 共13页
接口自动化测试文档解析.docx_第4页
第4页 / 共13页
接口自动化测试文档解析.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

接口自动化测试文档解析.docx

《接口自动化测试文档解析.docx》由会员分享,可在线阅读,更多相关《接口自动化测试文档解析.docx(13页珍藏版)》请在冰豆网上搜索。

接口自动化测试文档解析.docx

接口自动化测试文档解析

接口自动化测试

背景介绍

1.简介

功能测试、性能测试、GUI自动化回归测试已经能够满足我们的测试需求,保证网站质量,而随着产品功能越来越多、系统架构越来越复杂、新人越来越多,一些预想不到的缺陷出现在我们面前,我们必须要寻找一种更加有效的测试方法来适应当前的变化,保证产品的质量。

因此接口测试应运而生。

对于Web接口应用,包含浏览器与服务器交互的HTTP协议的接口和webService接口,软件测试人员在日常的测试工作中,需要大量的手动操作来验证接口的功能。

开发人员在开发过程中,需要访问其应用并且验证其功能是否正常运行,反复调试重复验证。

系统维护人员也需要经常访问其应用,以确保系统的正常运行。

如果某系统的接口较多,功能较为复杂,如上所述的这些操作就需要花费大量的时间和人力,如能引入自动化测试代替人工重复操作,将极大地提高团队的生产效率。

在这里,我们将介绍如何使用HttpClient框架完成接口自动化测试。

2.web接口自动化测试

如今,大多数的应用软件是基于Web的应用程序并通过浏览器展示给用户并与之进行交互。

不同公司和机构组织都需要测试这些应用程序的有效性。

在一个高度交互性和响应的软件时代,许多组织及团队倾向于运用敏捷开发理论,自动化测试一定程度上成为了敏捷开发流程中不可或缺的手段。

所谓自动化测试,就是执行自动测试工具或者用某种程序设计语言编写程序,控制被测软件中的各种模块,模拟手动测试步骤,完成测试的过程。

测试自动化有很多优点,比如:

频繁快速的迭代回归、高效的测试反馈、一致与重复性的执行、化繁为简的形式、弥补手工测试的可能遗漏缺陷等。

目前也有许多商业和开源的软件,可辅助面向Web接口自动化测试,如:

HttpClient、HttpUnit、HtmlUnit、JwebUnit等。

HttpClient是一个功能丰富支持HTTP协议的客户端编程工具包,能够很好满足我们对接口的自动化测试。

协议请求

1.HTTP协议

HTTP协议即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

●请求信息

请求行:

例如GET/images/logo.gifHTTP/1.1,表示从/images目录下请求logo.gif这个文件。

请求头:

例如Accept-Language:

en。

空行

可选消息体:

请求行和标题必须以作为结尾(也就是,回车然后换行)。

空行内必须只有而无其他空格。

在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

●请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URL制定的资源不同操作方式。

比较常用的方法有HEAD、POST、GET方法。

HEAD:

向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。

这一方法可以在不必传

输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

POST:

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。

数据被包含在请求体中。

POST请求可能会导致新的资源的建立和/或已有资源的修改。

GET:

请求获取Request-URL所标识的资源。

HEAD方法和GET方法几乎是一样的,对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息时相同的。

利用这个方法,不必传输整个资源内容,就可以得到Request-URL所标识的资源信息,该方法常用于测试连接的有效性,是否可以访问,以及最近是否更新。

在本文使用的接口自动化框架中,主要使用POST和GET方法发送请求,下面对这两种方法简单做一下比较:

1、GET提交的数据会放在URL之后,以?

分割URL和传输数据,参数之间以&相连,如

EditPosts.aspx?

name=test1&id=123456。

POST方法是把提交的数据放到HTTP协议包的Body中。

2、GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限

制。

3、GET方式提交数据,会带来安全问题,比如一个登陆页面,通过GET方式提交数据时,用户名和密

码将出现在URL上,如果页面可以被缓存或者其他人访问这台机器,就可以从历史记录获得该用户

的账号和密码。

●响应信息

在接收和解释请求消息后,服务器返回一个HTTP响应信息。

HTTP响应也是由三个部分组成,分别是:

状态行、响应头信息和响应正文。

状态行:

包含HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器返回的响应状态码;

Reason-Phrase表示状态代码的文本描述。

响应头信息:

包括通用头、请求头、响应头和实体头四个部分。

(具体内容可以去网上查阅相关内容)

响应正文:

响应正文就是服务器返回的资源的内容。

2.Soap协议

接口自动化框架测试中,有些模块之间采用了Soap协议的请求方式,本节我们对Soap协议进行简单的介绍。

Soap协议即简单对象访问协议,是一种轻量的、简单的、基于XML(标准通用标记语言的一个子集)的协议,它被设计成WEB上交换结构化和固化的信息。

Soap使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同的操作环境中的分布式对象。

●Soap协议包含四部分

封装:

定义一个框架,该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必选的。

编码规则:

定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例。

RPC表示:

定义了用于表示远程过程调用和应答的协定。

绑定:

定义了一种使用底层传输协议来完成在节点间交换封装的约定。

SOAP消息基本上是从发送端到接收端的单向传输,但它们常常结合起来执行类似于请求/应答的模式。

所有的SOAP消息都使用XML编码。

一条SOAP消息就是一个包含有一个必需的SOAP的封装包,一个可选的SOAP标头和一个必需的SOAP体块的XML文档。

把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。

●协议结构

Soap消息格式:

Envelope>

 

HEADER>

……

 

HEADER>

 

Body>

……

 

Body>

Envelope>

HttpClient

1.简介

HTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。

虽然在JDK的javanet包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。

HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

HttpClient已经应用在很多的项目中,比如ApacheJakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。

现在HttpClient最新版本为HttpClient4.3(GA),在接口自动化测试框架中我们使用的版本为HttpClient4.2.5。

2.安装

在介绍HttpClient的功能之前,首先需要安装好HttpClient。

◆HttpClient可以在http:

//jakarta.apache.org/commons/httpclient/downloads.html下载。

◆HttpClient用到了ApacheJakartacommon下的子项目logging,你可以从这个地址http:

//jakarta.apache.org/site/downloads/downloads_commons-logging.cgi下载到commonlogging,从下载后的压缩包中取出commons-logging.jar加到CLASSPATH中。

◆HttpClient用到了ApacheJakartacommon下的子项目codec,你可以从这个地址http:

//jakarta.apache.org/site/downloads/downloads_commons-codec.cgi下载到最新的commoncodec,从下载后的压缩包中取出commons-codec-1.x.jar加到CLASSPATH中。

3.功能介绍

HttpClient提供的主要的功能如下,要知道更多详细的功能可以参见HttpClient的主页。

◆实现了所有HTTP的方法(GET,POST,PUT,HEAD等)

◆支持自动转向

◆支持HTTPS协议

◆支持代理服务器等

4.基本功能使用

●GET方法

1、创建HttpClient的实例。

HttpClienthttpClient=newHttpClient();

2、创建GET连接方法的实例,在这里使用HttpGet方法。

在HttpCet的构造函数中传入待连接的地址。

HttpGetget=newHttpGet(url);

3、调用第一步创建好的实例的execute方法来执行第二步中创建好的method实例。

HttpResponsehttpResponse=httpClient.execute(get);

4、读取response。

从返回的response中获取状态码、响应正文等信息。

5、释放连接。

client.getConnectionManager().shutdown();

6、对得到后的内容进行处理。

●POST方法

POST方法用来向项目的服务器发送请求,要求它接受被附在请求后的实体,并且把它当作请求队列中请URL所指定资源的附加新子项。

调用HttpClient中的HttpPost方法与HttpGet方法类似,除了设置HttpPost的实例与HttpGet有些不同之外,剩下步骤相同。

1、创建HttpClient的实例。

HttpClienthttpClient=newHttpClient();

2、创建POST连接方法的实例,在这里使用HttpPost方法。

在HttpPost的构造函数中传入待连接的地址。

HttpPostpost=newHttpPost(url);

3、给post实例填充表单的值。

例如一个登录接口,需要id和passwd

NameValuePair[]data={newNameValuePair("id","youUserName"),newNameValuePair("passwd","yourPwd")};

4、调用第一步创建好的实例的execute方法来执行第二步中创建好的method实例。

HttpResponsehttpResponse=httpClient.execute(post);

5、读取response。

从返回的response中获取状态码、响应正文等信息。

6、释放连接。

client.getConnectionManager().shutdown();

7、对得到后的内容进行处理。

●Soap方法

使用soap协议的请求信息是使用xml文件传入的,使用HttpClient对这种形式请求的处理方

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 天文地理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1