【实战】接口测试企业微信
简介
学习目标
- 掌握接口测试设计思路与方法。
- 掌握常用接口测试工具 Postman。
- 掌握常用抓包工具 Charles。
- 掌握接口手工 mock 技术。
学习的这些知识其实都是企业中所具备的需求。
实战练习-企业微信接口测试实战
- 被测产品介绍
- 需求说明
- 实战思路
- 实战演练
实战目标
- 了解接口测试的价值。
- 掌握接口测试设计思路。
- 掌握常用接口测试工具 Postman。
- L1 接口协议与接口测试
- L2 常用抓包工具
- L3 Mock 工具使用
- L4 Mock 工具与定制化
被测产品介绍
- 企业微信
- 企业微信是腾讯微信团队打造的企业通讯与办公工具。
- 具有与微信一致的沟通体验,丰富的 OA 应用,和连接微信生态的能力。
- 可帮助企业连接内部、连接生态伙伴、连接消费者。专业协作、安全管理、人即服务。
环境准备
需求说明
- 完成企业微信部门管理接口测试:
- 编写接口测试用例:创建部门。
- 使用 postman 编写接口测试用例与断言。
企业微信其实开放很多接口,这里我们使用的是通讯录管理中部门管理的接口来做演练。
我们需要完成的目标是: - 编写接口测试用例:创建部门。 - 使用 postman 编写接口测试用例与断言。
相关知识点
形式 | 章节 |
---|---|
知识点 | 接口测试价值与体系 |
知识点 | 常见的接口协议 |
知识点 | 接口测试用例设计 |
知识点 | postman 基础使用 |
知识点 | 【实战】postman 实战练习 |
知识点 | 【实战】接口测试实战练习 |
什么是接口测试
在了解接口测试之前,必须先知道什么是接口
接口
不同的系统之间相互连接的部分,是一个传递数据的通道。
大家都知道,咱们现在的产品基本都是前后端分离开发的。也就是 UI 界面和后端服务是分开开发的。这样的开发模式,就决定了如果前端要和后端进行数据交互的话,必须要有一个桥梁来进行沟通。那这个桥梁其实就是我们说的接口。
要进行数据交互的时候,前端会先发送对应的请求给接口,接口收到请求后会去调用对应的后端方法得到响应结果,然后接口再把响应结果返回给前端。
通过这些接口,我们的客户端和服务端之前进行了一系列的数据交互。这种接口也叫做程序内部接口。
除了内部接口之外,还有外部的接口。外部接口常见的例子就是通过第三方登录、第三方支付等,通过调用第三方的忌口并返回当前的系统。
知道了什么是接口之后,我们再来看什么是接口测试。
接口测试
检查数据的交换、传递和控制管理过程。
接口测试本质是基于某种协议,发送一个请求给服务器,然后服务器返回一个响应数据,通过对响应的分析,判断是否与我们预期的返回一致,从而验证功能是否正确,这就是接口测试。
在这个过程中,通常的关注点如下:
- 接口的功能测试。
- 接口的性能测试。
- 接口的安全测试。
接口测试价值
到这里,可能部分同学纳闷的地方在于,手工点点点,貌似已经可以覆盖到全部的流程了,为什么还需要接口测试呢?
重点可以关注一下这张图片,讲的其实是分层测试,在分层测试体系中,有一个大家共识的结论就是:
- 越往上,发现 Bug 的时间越晚,成本越高
- 接口测试(Service)相比 UI 测试,可以更早发现问题,更快的质量反馈
接口测试不能完全取代功能测试
- 接口测试虽然有很多优点,但是保证的是后端工程师的产出质量,不能解决移动端的质量。
- 前端工程师的产出质量只能通过前端测试保证。
如何完成接口测试
这几本就是实际工作中,我们做接口测试的流程。它其实是包含在整个测试工作流程中的一部分。
下面,我们就按照这个流程来完成接口测试实战演练。
接口文档分析
在文档分析的时候,需要详细关注以下几个方面
- 业务场景
- 字段限制:
- 长度
- 非空
- 类型
- 其他内容
企业微信接口文档:https://work.weixin.qq.com/api/doc/90000/90135/90664
接口测试用例设计
接口测试主要关注的内容分为以下几个部分:
- 基本功能流程测试(正向功能验证)
- 冒烟测试。
- 正常流程覆盖测试。
- 基于输入域的测试
- 边界值测试
- 特殊字符校验
- 参数类型校验
- 必选参数校验
- 组合参数校验
- 排重逻辑
- 接口幂等性
- 故障注入测试
- Redis 故障降级测试。
- 服务故障转移测试。
大部分的验证点其实都很好构造,其中有几个非功能角度的测试点给大家强调一下:
- 幂等测试:
幂等性测试常见于以下场景:
- 用户重复提交: 非常容易发生,前端、后端均需要控制
- 网络重发: 容易遗漏,但有可能发生
幂等性测试可以使用以下两个方法完成:
- 前端:注意按钮的多次快速点击;
- 后端:多次发送同一参数的请求,查看服务端响应。
- 缓存数据库 Redis 测试
如果研发在架构设计的过程中,使用了Redis 技术栈。那么则需要注意 Redis 常见的一些测试点,主要包含以下几种:
- 缓存击穿:https://ceshiren.com/t/topic/23163
- 缓存穿透:https://ceshiren.com/t/topic/23163
- 缓存雪崩:https://ceshiren.com/t/topic/24558
- 缓存失效:https://ceshiren.com/t/topic/23278
- DB 故障注入
- 开发配合制造DB数据丢失场景,启动数据恢复策略,规定时间段内数据恢复。
- 开发配合制造DB崩溃场景,DB 多活策略启动,功能无影响。
接口测试用例编写
- 用例名称
- 接口地址
- 请求方式
- 前置条件
- 请求头部
- 请求参数
- 响应状态码
- 预期响应结果
课堂练习
- 补充完成企业微信部门管理接口测试用例设计。
接口测试执行
接口测试过程中有以下常见工具:
- Charles、Fiddler(代理工具,用来抓包或者 mock)
- postman(推荐)
- Jmeter(性能测试工具)
- loadRunner(商业收费工具,不推荐)
- python:Requests、HttpRunner(脚本实现)
- Java:HttpClient、RestAssured(脚本实现)
接下来,使用 Postman完成对应实战:
- Postman 构建接口请求
- Postman 编写断言
- Postman 创建测试集