题目目录
- 什么是接口测试?
- 为什么要做接口测试/接口测试有哪些优势?
- 请问你们公司是如何做接口测试的?
- 怎么设计接口测试用例?
- 没有接口文档如何做接口测试?
- 怎么区分bug是前端还是后端的bug?
- 常用的接口测试工具?
- 接口之间数据依赖如何处理?
- 依赖于第三方数据的接口如何进行测试?
- 你平常做接口测试的过程中发现过哪些bug?
- 当接口出现异常时候,你是如何分析异常的?
什么是接口测试?
- 接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求
- 测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系
为什么要做接口测试/接口测试有哪些优势?
- 可以发现UI页面上发现不了的bug
- 检查系统的安全性、稳定性
- 越底层发现bug,它的修复成本是越低的
- 检测系统异常处理的能力
- 提前介入测试,提升测试效率
请问你们公司是如何做接口测试的?
- 需求分析
- 对于产品的需求进行认识和理解,这一块主要了解接口 业务逻辑、业务关联
- Api文档分析与评审
- 主要分析:请求和响应
- 请求:
- 请求url是否合理
- 请求信息头是否明确
- 请求方法是否合理
- 请求参数是否必填、含义、参数方式是否明确
- 响应:
- 响应状态码
- 响应数据格式
- 响应信息头
- 异常返回信息和错误代码是否合理
- 测试计划编写
- 用例设计与评审
- 根据接口业务、接口信息编写接口用例
- 与产品、开发一起评审用例
- 测试环境准备
- 例如测试工具:Postman、jmeter安装
- 接口服务的环境(大部分开发进行部署)
- 执行用例
- 缺陷管理
- 测试报告
重点说明:
- 接口测试重点是:接口文档分析、用例设计
- 回答问题时,需要有重点,例如 接口文档分析、用例设计使用了哪些些方法、遇见什么问题,如何解决的(接口数据存在关联,工具里面如何做的关联)
怎么设计接口测试用例?
参考下图:
没有接口文档如何做接口测试?
- 首先去跟开发沟通,是否真正没有编写接口说明文档或者存在相关的设计文档,如果真是没有,可以推动一下是否可以进行补充(站在开发的角度进行沟通)
- 如果存在前端界面,通过抓包工具进行抓包,整理出接口相关信息,与开发进行沟通是否存在遗漏
- 不存在前端界面,有代码能力,直接去查看开发代码实现,获取接口信息
- 将整理的接口信息,编写出对应的接口测试用例
- 使用接口测试工具,执行测试用例,例如:Postman或Jmeter
- 记录测试结果,存在问题及时与开发沟通
- 提交缺陷,开发修改之后进行回归测试
- 测试完成提交测试报告
- 做接口测试项目复盘,主要推动开发对接口文档重要性
常用的接口测试工具?
- Postman
- Jmeter
- Fiddler
- Apifox
- 通过代码进行,例如 python+request、java+httpclient
怎么区分bug是前端还是后端的bug?
一般我会使用抓包工具进行抓包,获取前端和后端的数据交互过程
- 查看前端发送的请求数据是否正确(请求url、请求头、请求参数),如果前端参数存在问题,这个可以确定前端肯定存在问题(不能确定后端不存在问题,需要使用正确参数进行验证)
- 前端请求参数没有问题,查看后端响应的数据是否有问题,如果后端数据存在问题,那就是后端问题
- 最后一种,前端参数和后端请求都没有问题,这时候可以考虑前端是否做了数据转换(格式化),大概率是这里面处理出问题(曾经一个数值问题,由于前端在对数值转换处理出问题)
接口之间数据依赖如何处理?
- 直接举例接口测试使用的工具里面实现
- 参考(Posman):
- 在前置接口中提取要传递的数据保存到全局变量或者环境变量
- 在后续接口,直接使用保存在全局变量或环境变量中的参数值
依赖于第三方数据的接口如何进行测试?
你平常做接口测试的过程中发现过哪些bug?
- 一般错误:接口没实现,没按约定返回结果,边界值处理问题等
- 输入异常值(空值、特殊字符、超过约定长度等)
- 输入错误的参数,多输入,少输入参数
- 安全性问题,如明文传输、返回结果含有敏感信息,没对用户身份信息做校验,没有恶意请求拦截等
- 性能问题,如接口并发插入多条相同操作,响应时间过长,接口压测出现瓶颈等
- 例如:一个管理员删除操作,前端界面非管理员不显示删除按钮,通过接口可以使用非管理员进行删除
当接口出现异常时候,你是如何分析异常的?
- 一种方案使用工具(fiddler)抓包,查看请求报文和返回报文
- 第二种:web端直接使用浏览器 F12界面的Network,查看请求报文和返回报文
- 如果是后端问题,查看后端日志
可以参考前面一篇文章:接口调不通,如何排查问题?
以上内容纯属个人理解,如有不足,欢迎各位大神指正,转载请注明出处!
如果觉得文章不错,欢迎关注微信公众号,微信公众号定期推送相关测试技术文章
|