接口测试(十二)
一、前台、后台、数据库三者关系
fiddler抓包是抓取客户端 --> 服务端 发送的的请求接口
开N个网页,只要有对后端发送请求, fiddler是无差别抓取
F12只抓取当前页面的数据
二、接口概念
- 接口是什么?— 传递数据的通道
测试系统组件间接口的一种测试,工具模拟前端对接口进行调用 — 灰盒测试 - 项目处于哪种测试阶段? — 为什么需要测试接口,做接口的意义,对接口测试的理解
接口测试应用场景:
① 前端晚于后端开发,后端已经开发结束,没有前端,提前介入测试,用工具模拟前端,对接口调用 — 集成测试,测试左移
② 防止恶意绕过前端,对后端发送异常数据 — 接口能够处理,接口的安全性 — 系统测试 - 扩展:测试左移,测试右移
单元测试 — 集成测试 — 系统测试 — 验收测试
需求阶段 — 开发阶段 — 测试阶段 — 上线阶段
测试左移:提早介入项目中,降低成本,提高效率,尽早发现问题,接口 — 越早发现问题,系统测试的时候BUG越少
测试右移:介入到用户问题收集,上线后,问题解决 — 跟踪用户bug,补充用例
三、接口类型
- 接口主要包括:2种类型
① 同一个系统中模块与模块间的接口/前后端接口 – 内部接口
② 另一个是跨系统平台的对接 – 外部接口/第三方接口,身份验证等 - 常见接口类型/协议
a. HTTP(S)类型/协议:通过GET或POST等方法来获取数据,在数据处理上效率比较高
b. webservice类型/协议:通过soapi协议来获取数据,比起http来说能处理更加复杂的数据类型。本质也是http协议封装的 - http
参看pdf 《深入浅出https》
四、常见http状态码
200 | 正常 | 表示一切正常,到了服务器,并且服务器响应了请求
302 | 临时重定向 | 指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出
304 | 未修改 | 表示客户机缓存的版本是最新的,客户机应该继续使用它,比如前端js - 缓存,节省资源
403 | 禁止 | 服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致
404 | 找不到 | 服务器上不存在客户机所请求的资源 – 客户端地址错误
500 | 内部服务器错误 | 服务器 CGI,ASP,JSP等程序发生错误 – 服务器挂了
504 | 超时
五、解释 cookie,session,token
- cookie 在客户端存储用户的一些数据
- session 在服务器端,记录用户的请求状态,一般默认有效时间为30min
- token 用计算成本替换存储空间成本
用户权限检查 鉴权方式 cookies+session token
session_id会存储在cookie中,每次请求cookie中的所有信息都会传送给服务器,服务器通过session_id来识别是否是同一个用户的请求。不是同一个用户的话,要求用户重新登陆
六、 接口测试流程步骤 — 接口测试怎么做!!!
- 获取接口需求并分析 – 开发 ,前端抓包
- 编写接口测试用例&用例评审
- 项目环境部署 – 给现成可直接测试
- 执行测试 & 工具选用 – Jmeter,postman,soapUI
- 提交BUG并跟讲
- 单独需要整理接口测试报告
要求:
- 软件测试基础知识,编写用例,设计方法
- 数据库知识,观察数据表中的数据流
- 接口概念,http协议知识
- 工具,Jmeter原理及具体操作步骤
- 分析能力,需求业务/日志分析/浏览器抓包定位问题/fiddler抓包定位问题/数据库
七、接口测试用例模板
八、接口测试用例设计考虑
1、先考虑接口的正常调用
按照接口定义,传递正确的接口信息,包括地址、方法、传输数据,然后查看返回的响应结果是否正确、数据库数据是否正确;
1)传递的请求数据覆盖有效类、边界值
2)返回的响应结果的每个字段都需检查,例如code、msg信息
3)调用接口对数据库中数据的测试,增删改业务接口调用需确保到表字段的正确性验证
2、考虑请求参数的错误、异常情况
1)请求数据输入异常值,例如空值、长度类型异常等,接口能否正确处理且返回响应是否合理;
2)考虑业务约束,例如订单状态必须确认收货后才能评价,调用非该状态的订单,进行评价
3)输入错误的参数名、多一个参数、少一个参数,接口能否正确处理且返回响应是否合理;
3、关注接口的安全性测试:
1)敏感数据,例如密码是否加密传输;
2)返回数据是否含有敏感数据,如身份证信息、完整的用户银行账号信息等;
3)接口是否对传入的数据做安全校验,如用户鉴权token校验;