一、认识接口
做接口测试基础:客户端和服务端,了解http协议,抓包工具(开发语言)、熟悉测试工具,熟悉业务库表结构和数据类型。
mock:
1.什么是接口
接口定义:
接口分为:内部接口和外部接口
接口测试实际就是黑盒测试。黑盒测试:基本的测试思路是通过输入和输出的判断被测系统和对象的逻辑。
二、为什么要做接口测试?
提前介入测试,测接口其实就是测逻辑。
三、接口测试怎么测?
接口测试方式:一、用工具做接口测试;二、用代码实现跑脚本。
四、接口测试维度考量:
分为单个接口和多接口的测试(基于业务场景的测试)
1.接口的请求参数它的数据类型后台是否做了校验
2.接口的请求参数必填项的参数后台是否做了处理
3.接口的请求参数长度是否做了处理
4.提供的接口是否实现了对应的业务场景和业务功能
5.
单个接口的测试
多个接口的测试
五、接口测试用例设计
接口测试用例的设计和功能的测试用例设计其实一样,采用等价类划分、边界值、场景法、错误推测法等
接口的功能性,安全性、性能、容错性
接口:输入和输出
接口测试:系统/UI,接口/代码实现;测试手段
接口bug举例:
1.某个接口入参5位非int字符时会crash
2.某数据存储接口long型最大值和读出䄦写入不一致
3.某接口的items为空调用,出现crash
4.同时创建100个文件出现写入失败
5.数据储存是db字段字段错误,
输入-入参
参数类型 :数值型int,long,float,double等、字符串型string、数组型
数值型:
等价类 ,取值范围之内,取值范围之外,比如金额:负数 和正数
边界值,取值范围边界,边界最小,最大,边界最小-1,最大+1等
特殊值,0 负数
遍历法,取值范围的所有数值遍历
字符串型:
字符串长度,等价类 取值范围内,取值范围外,边界值 规定范围边界,类型边界 特殊值,0 即空字符
字符串内容,特定类型,英文、中文、大小写等;特殊字符,。<>$%^&##@,敏感字符,“反人性”
数组:
等价类,取值范围内,取值范围外,边界值,规定范围边界,个数边界值,特殊值
等价类,合法和非法,,重复法
输出-出参
输出结果成功和失败,接口处理时间
问题和风险判断:
1.错误前端处理不足,导致异常,前端入参未做校验
2错误提示处理不当,导致用户看到后台返回的错误码,前端未做兜底页面处理
3.错误提示不当,导致用户不知道哪里出现问题, 如何解决。根据后台返回错误码前端页面提示不友好
接口处理时间:返回和未及时返回(后台数据太多加载数据过长,需要性能优化)
问题和风险判断:
1.未进行超时处理,导致整个业务流程阻塞,注意区分同步接口和异步接口调用,微服务
2.超时后又收到接口返回,导致逻辑出现错乱。
接口处理逻辑:单元测试-代码逻辑(开发自测或测试介入测试)必须了解一门开发语言
1.约束条件分析 (数值限制、状态限制、关系限制、权限限制)
2.操作对象分析(测试点,合法和不合法操作,权限,敏感信息)
3.状态转行分析(测试点,通过状态不同调用不同的及接口,不可返回)
4.时序分析(按顺序执行,打乱顺序执行)
已废弃的接口不可用,需求变更。
接口设计的合理性
1.接口字段是否冗余
2.接口是否冗余
3.接口是否返回了调用方期望得到的信息
4.接口定义是否满足了所有调用的需求
5.接口定义调用是否方便
总结:
接口用例设计整体思路:
(1)第一层:针对接口文档规范展开测试,包含必填、枚举值校验、临界值校验、长度校验、以及容错校验;
(2)第二层:业务逻辑测试:接口中各个参数之间的关系,比如:数学关系:依赖关系、常识;
例如:你的接口中包含还款总金额、还款本金、还款利息,那么还款总金额是否等于本金加利息之和,这即是数学关系。
在比如你的接口中传了身份证信息和性别,是否匹配,这个就属于依赖关系。
在比如需要传地区,那么目前为止如果您 的公司业务只在国内的话,那么对国外特殊地区是不予支持的,这个即属于常识。
(3)第三层:异常流测试,包括重复申请、是否有密等逻辑。
(4)第四层:要关注最终的数据存储,既要检查存储接口数据的各个表;
(5)第五层:接口测试的断言方式,通过比对数据库表的字段去验证结果;
PS课外常识了解:
同步接口和异步接口
接口的幂等性
接口的性能
接口的安全性