博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务端接口测试分析要点
阅读量:5132 次
发布时间:2019-06-13

本文共 2031 字,大约阅读时间需要 6 分钟。

 题记:关于接口测试的归纳总结的想法来源于去年的招聘,每次面试都会问关于接口测试的一些问题,可谓“一千个读者眼中就有一千个哈姆雷特”,每一个测试人员眼中都有不同的对接口测试的理解,因为有了去年那一阶段的招聘过程,我才陆陆续续的对服务端的接口测试要点和用例分析进行整理归纳,补充归档,也就有了这篇文档,欢迎阅读的朋友们提出建议。

服务端的接口测试我们一般从功能开始进行测试,比如请求参数和响应参数的校验,业务逻辑或业务规则的校验,数据库操作的校验。功能正常后会根据需要进行安全相关的检查、性能测试以及系列扩展测试,比如与历史版本的兼容性测试、接口的超时验证以及设计合理性验证等,用例设计也是从这几个方面进行分析设计,下面的思维导图是一个概要的测试关注方向:

 

 

 

 

 

详细介绍如下:

针对输入

输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参,异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析

A、正常的入参

正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约定条件正常返回

B、参数异常

参数异常包括:参数为空,多参或少参,错误的参数

C、数据异常

数据异常:数据类型错误、非空参数为空,长度不符合设计,不在字典范围内的数据,不合法的成员,特殊字符或敏感字符,存在关联关系的参数数据异常等

针对处理逻辑

接口测试前一般研发会提供接口设计文档或业务相关的设计图、流程图,针对业务流程的处理逻辑,我们可以从入参的限制条件、事件的操作对象、业务的状态转换

A、 限制条件分析

数值的限制:字典,等级,行业相关限制,金额限制,分数限制等

状态的限制:有效|无效,在线|离线,拉黑|洗白等

关系的限制:存在或不存在,绑定或解绑等

权限的限制:管理员,普通用户等

B、 对象分析

对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值,卡为黑名单或挂失等。

C、 状态转换的分析

比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态业务怎么处理等

D、 时序分析

一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理

比如斑马停车风控业务,如果在入站后车辆直接掉头不驶入高速业务如何处理?

针对输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等

数据库操作

A、对数据库操作是否频繁,是否会在写库过程中占用大量的CPU,写库完成后进程是否释放

B、业务数据入库是否正常,是否有重复数据入库,是否出现乱码;日志数据入库是否正常

C、数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式

D、数据删除、备份是否正常

安全性

敏感信息是否加密(如银行账号,密码,转账金额)

性能相关

A、接口在什么情况下会出现并发,并发场景是什么,什么情况下的并发会导致问题

B、最大并发,响应时间,吞吐量,资源消耗情况

接口超时

接口正常情况下是有返回的,那么如果接口不返回呢?所以接口超时后的处理也是测试需要考虑的部分,如果超时处理不当,可能会引起进程阻塞,或者超时后又接收到接口返回导致逻辑错乱

与历史版本的兼容性分析

已废弃的协议或接口,代码并未注释,在某种特定的情况下可能会触发历史版本已废弃的协议或接口,导致用户使用或功能调用后出现意想不到的问题,损失

同一套系统,不同服务之间的接口相互调用时,新接口是否受历史接口的影响,尤其是新旧接口都对某一个功能进行处理,是否存在业务不兼容的问题

这一点需要测试人员是长期的测试一个系统的,那么可能会想到这种场景,会清楚的知道什么时候哪个版本进行了重构,废弃了那些接口,新增了那些接口,哪些场景会触发历史接口的某个规则

接口设计合理

接口字段是否冗余,接口是否返回了调用方期望得到的信息,接口定义是否满足所有调用者的需求,接口调用是否方便,接口是否可扩展,接口参数使用是否方便,接口的业务规则是否都正确,接口都整个服务的使用会产生那些影响

转载于:https://www.cnblogs.com/simple1025/p/11149838.html

你可能感兴趣的文章
【题解】青蛙的约会
查看>>
autopep8
查看>>
GIT在Linux上的安装和使用简介
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
安装 Express
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>