一、熟悉接口文档和分析接口
1、发送接口文档
2、分析接口文档
3、了解需要测试接口,分析需求文档
接口请求参数:
接口返回参数:成功
整理接口:(自己项目有哪些借款)
cms项目接口:查询接口,登录接口,添加用户接口,用户管理接口,文章管理接口,删除用户接口,删除栏目接口,修改密码接口
保险项目接口:登录接口,车牌信息接口,投保接口,生成保单接口,
银行项目接口:借款接口,提现接口,审批接口,绑卡借款,放款接口,还款接口,逾期接口
接口设计的思路:
接口测试测试点
(1)业务功能测试
a、正常测试
(1)全部必填参数
(2)全部参数(必填+非必填)
(3)参数组合(必填+部分非必填)
(4)传参格式:x-www-urlcode、json 格式测试:传递json串 ;传递非json格式情况 error code
(5)默认值测试: 很多情况一些非必填的参数会有默认值
(6)非空测试:无论是必传的和非必传的参数,传递的key是正确的,但是value=null,这时候返回结果是否正确
(7) 异常测试
a、数据异常:长度、类型、是否为空、不满足业务等(注意:与功能测试一模一样)
b、参数异常:多参、少参(少参一般针对都是必填项)、无参、错误参数等
c、数值限制:分数限制、金币限制、等级限制等等。
(8)检查接口的容错性,假如传递数据的类型错误时是否可以处理
(9)接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理
性能测试:
a、接口响应时长
b、接口吞吐量
c、接口并发数(接口最大并发数、接口最佳并发数)
d、服务器资源使用率
e、接口稳定性测试
安全测试
a、敏感数据是否遮挡
b、敏感数据是否可以复制
c、敏感数据是需要加密的
d、敏感数据加密需要一定的难度(不容易被暴力破解)
2、比如权限认证、鉴权
3、SQL注入
4、绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了。或者我支付时,抓个包将订单金额一改,如果能以我改后的金额支付,那这个借口就有问
5、绕过身份验证,就是某个功能只有有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢
6、 密码安全规则,设置密码时复杂程度的校验。
7、鉴权码 token 异常(为空、没有、错误、过期)
异常测试点:
1、提交时快速多次点击、频繁添加/删除
2、幂等校验(或者重复提交)
消息重发:目前很多提交都是异步提交,如短信发送,一般点击发送就会提示发送成功。但实际是否发送成功,后续会有系列处理机制,根据消息的一些本身机制,后续处理过程中会进行重发机制。
试方法:可在终端最后一步,或中间环节人为触发多次发送。如:在消息队列中重发,多次补收同一内容的报文等。
3、连接超时或者失败时需重试
4、缓存测试(缓存失效、缓存溢出、缓存溢出)
DB同步性: 如对商品重要属性进行了新增、编辑(价格、库存等重要信息)、删除时,如果应用了缓存机制,那测试过程中就需要关注DB的修改是否同步到缓存中、数据库的字段进行更新缓存中的存储结构是否进行更新等
5、与第三方交互
与第三方的交互一般都是mq交互或服务调用,所以在测试过程中会重点关注幂等校验以及服务调用超时的情况。
测试方法:
重复发送mq
使用Yapi平台对接口进行mock 、修改服务超时响应时间、模拟第三方服务返回异常
接口文档
1、接口文档是谁提供?
开发
2、如何定位一个bug是前端bug,还是后端bug?
前后端都有接口
(1)前端bug,请求参数正确,响应参数也是是正确,而页面显示错误,就是前端 bug
(2)后端bug,请求参数正确,响应参数是错误,后端逻辑有问题,定位为后端bug
3、接口文档包含哪些内容?
(1)版本记录
(2)接口目录
(3)目录
(4)简介
(5)每个接口的组成部分
a.请求方式 post或get
b、协议 https,http
c、接口路径 (url)ip和域名,根据环境来填写)
d、请求参数: 键,值,参数类型,参数选填项
e、请求头:请求类型
f、响应参数:状态码,响应时间、响应体,键值对
4、接口设计用例?
(1)一条正常接口用例(把接口用例调通)
(2)在考虑多条异常用例(无限)一般5-6条
(3)特殊情况的接口可以和开发沟通