接口测试及接口自动化(二:接口用例设计)

愿有人待你如初,疼你入骨,从此深情不被辜负。敬你一杯酒,愿你有诗,有梦,有坦荡荡的远方。

一、接口测试

接口:主要是子模块或者子系统间交互并相互作用的部分。

这里说的接口是广义的,客户端与后台服务间的协议;插件间通信的接口;模块间的接口;再小到一个类提供的方法;都可以理解为接口。

接口测试:是指针对模块或系统间接口进行的测试。

1.接口测试经常遇到的bug和问题

(1)传入参数处理不当,导致程序crash;(某个字符显示为字符串实际应是 int)

(2)类型溢出,导致数据读出和写入不一致;(点赞数显示)

(3)因对象权限未进行校验,可以访问其他用户敏感信息;(可以不输入自己的uid就可以收到红包)

(4)状态处理不当,导致逻辑出现错乱;(是否是阅后即焚的视频,和视频所设置的好友可见状态)

(5)逻辑校验不完善,可利用漏洞获取非正当利益等。可以不输入自己的uid就可以收到红包)

2.接口测试用例设计

接口测试的用例设计,主要从输入和接口处理两方面考虑:

1)针对输入,可按照参数类型进行设计;

2)针对接口处理,可按照逻辑进行用例设计;

3)针对输出,可根据结果进行分析设计。

2.1 针对输入设计

对于接口来说,输入就是入参。常见参数类型有:

(1)数值型(int,long,float,double等)

(2)字符串类型

(3)数组或链表

(4)结构体

结构体(struct)是一些元素的结合,元素实际也是数值型,字符串型,数组或链表。

下面详细说明数值型、字符串型、数组或链表三种参数类型用例设计。
2.1.1 数值型

数值型的参数主要考虑以下几个方面设计:

如果参数规定了值的范围,则需要考虑等价类取值范围内、取值范围外,取值的边界,如有需要,可能会遍历取值范围内的各个值。

例如检查权限的接口:TaskChecker.checkTask(int taskID) taskID的取值范围是1-35,那么设计时考虑:

• 1-35范围内和范围外的值;

• 1-35的边界:0,1,35,36;

• 类型的特殊值:-1,0

• 数据类型的边界值:int的最小值最大值;

• 因为1-35代码的权限ID不同,可能需要遍历1-35的每个值。

常见问题和风险:

• 特殊值处理不当导致程序异常退出;

• 类型边界溢出

• 取值范围外值未返回正确的错误信息等

2.1.2 字符串型

字符串型的参数,主要考虑字符串的长度和内容:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值