关于接口测试的一些总结

什么是接口:可以简单理解成用来连接而开放的入口,比如前端和后端的连续需要用接口,移动端和后台的链接也需要用到接口。连接前端 后端 和移动端。


接口测试:是测试系统组件间接口的一种测试。主要用于检测外部系统于系统之间以及系统内部各个子系统之间的交互点。

重点测试的是数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等等,这要求对业务逻辑有一定程度上的理解,对数据流向有较好的定位。


接口的种类:外部接口(系统和系统之间的调用:如分享时,微信会提供接口给“跑向珠峰”),内部接口(上层服务和下层服务之间的调用,同级服务(服务之间的的调用:如添加一条数据时,会先调用数据查询的服务,查询改数据是否是重复数据
))


接口测试的原理:

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


接口测试的流程:

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


为什么要设计测试用例?
理清思路,避免漏测;提交测试效率;跟进测试进度;告诉领导做过;跟进重复性工作


接口测试的用例设计:

从功能,逻辑业务,异常,安全这几方面来考虑测试用例设计,具体如下:

功能:功能是否正常(服务的返回是正确的)功能是否按照接口文档实现

逻辑业务:是否有依赖业务(下单,依赖登录功能)

异常:参数异常(关键字参数,参数为空,多了或少了一个参数,错误参数),数据异常(关键字数据,数据为空,长度不一致,错误数据)

关键字数据:loginname=NULL

关键字参数:开发语言的关键字,mysql,java,python,等等

把参数名loginname改成echo,服务端返回账户名不能为空,说明服务端是有判断。

安全:(cookie,header,唯一识别码)

cookie:下单,逻辑依赖业务中用到,带cookiers:会吧服务端获取的数据返回过来,删除cookies 后,服务端还是有返回信息,说明该接口是不合格的

header 特别是在移动端,为了安全性,会把header加进去,带header 会吧服务端获取的数据返回过来,删除header后,发送请求后,提示提交数据不正确,该接口正常

移动端接口测试中用到,跟header一样,唯一识别码:手机的唯一识别码发到服务端,验证,如果设备不存在,会给出提示信息。


接口工具的目的和价值:

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


接口测试的适用范围:

一般用于多个系统间的交互开发,或者拥有多个子系统的应用系统开发的测试。

接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统。

主要测试这些对外部提供的接口的正确性和稳定性。它也同样适用于上层系统中服务层接口,测试难度随层级而上升。即越往上难度越大。


需求的频繁变化,做接口测试的测试人员应该如何应对:

个人觉得这在于团队开发的流程,团队之间的沟通和测试人员的警觉性。

在开发阶段,需求的变更是一件极为频繁和正常的事情,对于此点团队中的任何一人都应该以正确的心态来面对。

团队需要规范的开发流程,良好的沟通方式,测试人员更需要及时跟进软件进度,和开发人员并进齐行。

同时,测试与开发需要相对独立的工作环境,总结而言为之知己知彼,亦敌亦友。


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

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

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

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



接口测试用例包括的内容:

功能点,测试环境,测试数据,执行操作以及预期结果。 如下:

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

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

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

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

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


具体测试用例的参考点: 

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

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

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

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


关于单元测试,接口测试和白盒测试 

 a) 单元测试:针对具体代码逻辑进行测试,主要测试被测代码的一个很小,很明确的功能是否正确。即单元模块的逻辑是否正确,对业务关注不大; 

b) 接口测试:针对程序内部的或者外部的接口进行的测试一个接口方法可能包含多个单元模块,并且,一个接口会有自己特定的业务定义:做接口测试更多的从业务的角度去考虑如何测试; 

c) 白盒测试:单元测试和接口测试都属于白盒测试的一个阶段



转载后有部分是自己修改的,参考的文章:https://wenku.baidu.com/view/3d37636479563c1ec5da71fe.html


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值