接口测试

接口的定义

  接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。

提供一套标准,服务和规范。

 

目的 

接口测试是保证软件产品质量的最重要的软件测试之一。接口测试是进行评估的系统或组件
是否正确地传递数据及互相正确的控制。接口测试通常在测试和开发团队都进行。接口测试通常
在应用或功能开发的初期检验模块间调用的正确性和友好性

 

接口分类

 

1 按照功能分有功能间和系统间

 

功能间接口

   整套系统中,功能模块之间的接口。比如: erp系统中,采购模块和库存模块之间的接口;收付模块与总账模块之间的接口

特点:一般系统的所有模块部署在同一服务器中,并且使用同一个数据库 

 

通常采用黑盒测试方法,注意接口数据在不同模块间的走向。尤其要注意接口间的逻辑控制关系。比如:销售发货时,要检查库存的可用量,如可用量不足,则不允许发货   

 

 

系统间接口

   不同系统之间的接口。比如:银行的各个系统间接口。像核心系统与各个外围系统之间都是

此类接口

 

特点:通常情况下,不同系统部署在不同的服务器上,不仅采用不同的数据库,而且数据库类型还有可能不同 

 

通常采用白盒测试方法。关注的是系统间接口的实现方式。比如:采用何种类型的接口文件,接口文件格式,以及接口文件处理方式等 

 

2 按照类型分类 有业务接口和数据接口

 

业务接口

   系统或功能接口间有业务逻辑关系。比如erp系统中,采购入库后,会生成库存入库单,影响可用量或现存量等。也可称为联机接口

 

特点:接口间有业务逻辑的上下游关系,有可能会涉及跨系统或模块的逻辑控制,已经反向操作

 

通常采用黑盒测试方法,注重分析业务逻辑,采用路径覆盖法进行分析。并且一定要注意正向和反向操作的测试

 

 

数据接口

  接口系统没有业务逻辑的上下游关系,只有接口数据的上下游关系。比如企业征信系统,要通过数据交换平台获取核心系统的数据。也可称为批量接口

 

特点:系统间只存在数据的上下游关系,而且数据都是进行批量处理

通常采用白盒测试方法。关注的是数据文件格式,以及记录数及内容等是否正确,还要考虑数据是否加密的问题

 

3 接口数据方向分类单向和双向

单向

 数据在接口中是单向流动,但根据具体实现方式又可以分为单向推或取两种方式。数据仓库与各系统间的接口基本上都是单向接口。一方面前端系统向数据仓库推送数据,一方面后端系统又主动取数据仓库提供的数据

 

特点:不管数据是单向推或取,一般都会有一个ftp地址,存放指定数据文件,并且有定时存取的规则。可在日志中查看存取结果 

通常采用黑盒测试和白盒测试相结合的方法。着重测试数据文件格式,是否按规则存取等。 

 

双向

两个系统间的接口数据既有来,又有往。比如综合报文处理系统与核心系统,综合报文处理系统即接收核心系统发送的数据,又要将处理结果反馈给核心系统 

 

特点:可以将不同数据方向的接口分开分析,当作两个单向接口。但要注意来往的数据通常具有关联性

通常采用黑盒测试和白盒测试相结合的方法。在测试时要着重来往数据的关联性,合理设计测试数据,制定测试执行计划  

典型的接口图:

   



接口测试的原理:通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一过程(request→response)

 

    接口测试的流程:类似于功能测试,需求讨论→评审需求→确定需求→产出接口定义→根据需求文档及接口定义设计测试用例(测试用例主要从业务场景,功能以及异常测试几个方面考虑)→评审用例→执行测试

 

  接口测试的价值:降低成本,提高效率。接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。它是一个完整的体系,还包括功能测试,性能测试等。

 

 接口测试的适用范围:一般用于多个系统间的交互开发,或者拥有多个子系统的应用系统开发的测试。接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统。主要测试这些对外部提供的接口的正确性和稳定性。它也同样适用于上层系统中服务层接口,测试难度随层级而上升。即越往上难度越大。

 

接口测试用例的编写

1如何简单设计接口测试的设计用例

a)          明确出发点——测试的目的是为了让找出软件的缺口,修复并使之更加完善。在这一基础点上,接口测试也不例外。以找出软件的误漏为出发点,测试用例需紧贴此线,更容易找出问题所在。

b)         明确测试点——选择好的测试对象。系统内部层次繁复复杂,任何一个接口的变动都将导致用例失效。(可将这些最外层的接口根据数据的流向分为进入和流出两类,进入系统的接口实际上是我们用例的执行调用的接口。可通过参数对这些接口进行调用,模拟外部的使用;而流出的接口则是我们用例真正该验证的点。数据从哪里流出,流出的状态如何,此时系统的状态都是作为测试目的所要着重关注的部分)

c)          确认完整的测试对象的功能——确认外部接口提供给使用这些接口的外部用户什么样的功能,外部用户真正需要的时什么样的功能予以区别。用例的设计要严格按照测试对象功能设计才是正确的用例。

 

 

2      设计(接口)测试用例有哪些要求:结构好,可读性高,渗透性强。

 

3    (接口)测试用例包括的内容:功能点,测试环境,测试数据,执行操作以及预期结果。

如下:

a)          接口测试测试的功能点:如果一个接口功能过于复杂时,可以对接口用例进行结构划分(如根据层次,平台,功能点等等),这样用例具有更好的可读性(接口划分原则为:以接口提供的功能点的不同进行合适粒度的划分,同一功能点的用例又可根据测试环境的不同,数据的不同进行用例的填充)

b)         接口测试用例的环境:程序内部环境和程序所调用的外部接口的环境。

c)          关于接口测试测试数据:分为两部分:接口参数数据和用例执行所需系统数据。数据的设计、准备测试用例的数据不可马虎。通过好的测试数据查找问题,能极大的提高工作效率。接口参数数据需要对每个参数根据测试接口的实际功能进行分析,在符合业务逻辑的情况下进行逻辑组合排列,不要遗漏某些边界值和错误点的数据,这样用例更容易发现问题。

d)         执行操作:即对所测接口的调用。

e)          预期结果:根据需求进行验证,是衡量软件是否达到预期的标准。应该着重细致,每个用例均需验证,应该避免一个用例重复做相同的验证,提高测试用例的效率。

 

4    具体测试用例的参考点:

a)          输入参数测试:针对输入参数进行的测试,也可以说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法(不合法),输入参数为空,为null,输入参数超长等等;

b)         功能测试“接口是否满足了所提供的功能,相当于正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例觉有更好的可读性和可维护性;

c)          逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试的界限并不是那么清楚,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分之情况和异常;

d)         异常情况测试:接口实现是否对清楚情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何异常都进行处理。

 

 

 

接口测试分类

   

测试方式

 接口测试工具和  自动化脚本

 

自动化脚本

Python  Requests,urllib2

     Requests,该框架保留了所有urllib2的优点,比起urllib2更加简洁明了

 

接口测试工具介绍

1 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。

 

2 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。


3 Jmeter

 

 

 

   

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值