玖叶教程网

前端编程开发入门

接口测试初探

原创作者:上官玉@招聘测试 58招聘技术团队

一、什么是接口测试

1、接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等.

2、个人认为接口分为程序内部接口,程序外部接口,内部接口的测试通常是进行白盒测试(测试通常是开发进行的),一般我们测试都是程序的外部接口。其实程序的外部接口也可以进一步细分的,比如组件的接口,web服务接口等等。对于组件的接口的测试也是使用白盒测试的,需要准备驱动程序。而web服务接口的测试,可以借助一些工具来进行。大部分都是测试的WEB服务接口,其实原理就是你根据web服务的格式要求准备测试数据,然后通过工具或者程序代码把请求发送到web服务器,然后验证返回的结果

二、常见的接口测试类型

HTTP 协议接口测试

REST 服务中,HTTP 请求的参数传递方式

webservice接口测试

需要了解什么是webservice

其他接口:内部单元接口测试

函数方法,sockect接口等等

三、接口测试的方法和思想

接口测试用例主要包括两大类:

1、正常情况,即是合法情况测试,可以包括以下几种情况

1)接口逻辑测试

如果要保证接口测试的顺利进行,测试用例一般情况下需要包含前提条件,业务逻辑,输入参数,输出值的描述,在接口逻辑测试中主要是根据所描述的业务逻辑,进行用例的设计,主要目标是测试在正常输入的情况下能得出正确的结果,测试用例的设计方法跟黑盒测试差不多,主要运用等价类,边界值两种方法。测试的各个方面,包括数据的各个出口,路径,入口都应考虑周全。

2)路径覆盖测试性

经过了上述处理后,单个的接口服务已经得到了保证,但是在业务流中是否满足了业务需求其实还是没有得到保证,路径测试的目的就是设计尽可能少的用例,来保证各种业务场景下数据是安全可操作的。

3)数据量测试(可选)

不仅需要用一般大小的数据量去测试,也需要用预期的或者规定的最大数据量去测试。

4)接口并发性测试及性能测试

需要模拟多用户接口并发的情况,系统是否正常调用, 一般用工具去测试,如Loadrunner ,jemter

2、异常情况

接口逻辑的测试中主要测试的是正常逻辑,即对外提供的接口服务是能够工作的,但是这是这些测试不能保证数据的安全,及程序在异常情况的逻辑正确性,因此需要测试出错测试,主要包括以下几个方面:

1)空值输入,如当传入一个对象参数时,需进行NULL值的参数

2)参数属性的测试,如果输入一个未赋值参数

3)异常的测试,制造一些异常的测试场景,测试的异常描述是否清晰

4)另外如参数个数,参数类型(如int型输入String的参数)的出错测试,由于IDE本身就会报编译出错的信息,这里可以不做测试用例的设计。

5)网络通讯异常

模拟非正常情况下的网络通讯中断,时间延迟等,查看系统是否能够正常处理做出合理的反应。

接口测试用例设计参考

接口测试工具介绍及使用

接口测试工具

web接口测试工具 :postman 价格: 免费

soapUI 接口测试 免费, soapUIpro 收费

jmeter工具 和LoadRuuner工具

单元测试工具:testng,junit

POSTMan工具:

postman是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试。(可以用来测试比较简单的http请求的功能测试)

它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers。

支持不同的认证机制(basic, digest, OAuth),接收到的响应语法高亮(HTML,JSON或XML)

Postman 能够保留了历史的请求,这样我们就可以很容易地重新发送请求,有一个“集合”功能,用于存储所有请求相同的API/域。

这个扩展还有一些更多的功能,以简化测试和调试HTTP请求。是每个Web开发人员必须具备的。

项目地址: http://www.getpostman.com/

下载地址: https://chrome.google.com/webstore/detail/postman-rest-client/fdmmgilgnpjigdojojpjoooidkmcomcm

postman google 应用商城可以直接搜索到

postman的使用

请点击此处输入图片描述

soapUI Pro工具

由于web服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,在soapUI等工具出现之前测试人员不得不自己编写程序来测试它,这就要求测试人员花费很大的精力去了解底层的接口,调用关系和详细的协议,导致他们不能把注意力集中到测试中。soapUI的出现极大的改变了这局面,作为一个开源的工具,强大的功能、易用的界面,用户可以在其中通过简单的操作完成复杂的测试,不需要了解底层的细节极大的减轻了工作量,soapUI支持多样的测试,例如功能测试,负载测试,回归测试等。

soapui 支持两种项目协议(REST 协议(可以简单理解为HTTP协议)和 SOAP 协议) 主要用来测试SOAP协议,也就是webservice 服务.

扩展知识:什么是SOAP?

SOAP (Simple Object Access Protocol) 顾名思义,是一个严格定义的信息交换协议,用于在Web Service中把远程调用和返回封装成机器可读的格式化数据。事实上SOAP数据使用XML数据格式,定义了一整套复杂的标签,以描述调用的远程过程、参数、返回值和出错信息等等。而且随着需要的增长,又不得增加协议以支持安全性,这使SOAP变得异常庞大,背离了简单的初衷。另一方面,各个服务器都可以基于这个协议推出自己的API,即使它们提供的服务及其相似,定义的API也不尽相同,这又导致了WSDL的诞生。WSDL (Web Service Description Language) 也遵循XML格式,用来描述哪个服务器提供什么服务,怎样找到它,以及该服务使用怎样的接口规范,简言之,服务发现。现在,使用Web Service的过程变成,获得该服务的WSDL描述,根据WSDL构造一条格式化的SOAP请求发送给服务器,然后接收一条同样SOAP格式的应答,最后根据先前的WSDL解码数据。绝大多数情况下,请求和应答使用HTTP协议传输,那么发送请求就使用HTTP的POST方法。

REST (REpresentational State Transfort) 形式上应该表述为客户端通过申请资源来实现状态的转换,在这个角度系统可以看成一台虚拟的状态机。抛开R. T. Fielding博士论文里晦涩的理论不说,REST应该满足这样的特点:1)客户端和服务器结构;2)连接协议具有无状态性;3)能够利用Cache机制增进性能;4)层次化的系统;5)按需代码。说到底,REST只是一种架构风格,而不是协议或标准。但这种新的风格(也许已经历史悠久?)对现有的以SOAP为代表的Web Service造成的冲击也是革命性的,因为它面向资源,甚至连服务也抽象成资源,因为它和HTTP紧密结合,因为它服务器无状态。

1 webservice

所谓webservice就是定义了一套标准的调用过程:

a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL

b 客户端需要以一种标准的协议来调用此服务,这属于SOAP.

c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于UDDI.

soupui与实际项目的对应关系

说明:

1.1、测试步骤TestStep

测试步骤是最小的单位,一个完整的测试用例是由多个测试步骤所组成的,而每一个测试步骤都需要根据实际的业务要求进行组织。

1.2、测试用例TestCase

一个测试用例代表一个完整的操作,接口测试的目的实质在于模拟外部的调用来验证接口的功能,而接口功能的各个分支则由入参测试数据的不同来遍及。

1.3、测试集TestSuite

对于测试集,主要是为了区分大功能模块里的不同小功能点而引入的概念,一般一个WebService都包含有多个接口,此处可根据需要添加测试集。

1.4、项目Project

在SoapUI里一个接口对应一个项目,这是由SoapUI提供的功能所决定的,在每次要测试一个新的接口时,可以右键点击WorkSpace的名称,从右键菜单中选择New soapUI Project来引入新的WSDL。

1.5、工作空间Workspace

对应测试项目的概念,一个测试项目中可能会包含多个接口,这些接口都同属于一个项目中,由工作空间来管理所有的接口项目。

soupUI使用

四、接口测试实例

被测试接口:

功能测试用例设计

功能测试工具可选用postman 具体可参考上面postman使用

接口测试并发及性能测试

并发接口测试代码, 使用的是Loadrunner , 由于没有界面,所以不能录制,代码需要自己编写,脚本编写完成后,使用Loadrunner工具进行场景并发, 接口并发没有问题,可以直接进行接口的性能测试(Loadrunner性能测试工具,可参考Loadrunner性能测试工具的使用文章,当然此处也可以选择jemter进行接口并发和性能测试)

注意:提交方式和参数类型有关, 这个是JSON 格式的,只能用这种方式提交。

五、接口测试总结

1、了解被测试接口是何种类型的接口( http, webseriver ,代码函数等)

2、了解被测接口的需求,接口逻辑,接口参数类型及限制条件,接口提交方式等等。

3、 设计接口测试用例,(参考接口测试方法) 选择合适方法进行功能测试(选择工具 或者编写测试代码)

4、并发测试和性能测试(根据实际情况自己编写代码,或者使用Loadrunner、jemter工具进行测试) 注意: 通过这段时间测试发现大多数并发测试都会发现问题,所以测试时最好对接口进行并发测试。这个问题一般研发很难发现,出现并发错误一般都是严重性问题。

文章选自微信公众号:zhaopinteam_58

如果您有什么意见想法或者想看到更多干货,欢迎关注公众号:zhaopinteam_58

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言