【实战】mock 实战练习
Mock 实战练习
需求说明
Mock 的核心其实就是要修改数据模拟各种场景。本实战重点介绍 Rewrite
、Map Local
、Map Remote
这几种方法如何完成 Mock
测试。
实战思路
Rewrite
Rewrite
就是接口重写。
Charles 的 Rewrite
功能非常强大,可以重写接口所有元素的内容,例如:header、host、url、path、query param、response status、body。总之使用 Rewrite
请求和响应都可以进行修改。
Rewrite 原理
Rewrite
的过程是这样的。客户端发出来的请求会先发到 charles
上,Charles
拿到请求之后按照 rewrite
设置的规则去修改请求里面的内容。改完请求,Charles
会把请求再发到服务端。然后服务端也是先把 response
先发给了 charles,charles
收到了 response
之后,按照 rewrite
设置的规则去修改 response
,然后把修改完的数据再发给客户端。
Rewrite 实战
- 场景
- 修改雪球行情页面的股票名称
- 修改雪球行情页面的股票价格
- 设置方法
Tools
->Rewrite
- 勾选
Enable Rewrite
- 点击下方
Add
按钮新建一个重写的规则 - 在右侧编辑重写规则
- 点击
ok
生效
Map Local
Map Local
就是使用本地的数据来代替线上数据。它可以很方便的改变接口的返回数据,模拟不同场景进行测试。
Map Local 原理
Map Local
的时候,Charles 压根就没有把请求发到服务器去做请求,直接帮我们把本地的一个文件的数据返回给了客户端。
Map Local 实战
- 场景
- 修改雪球行情页面的股票名称
- 修改雪球行情页面的股票价格
- 操作
- 准备本地接口响应数据
- 配置
Map Local
- 选择要进行
Map Local
的接口 鼠标右键
-- 选择Map Local
选项进入设置界面Map From
填写接口的信息Map To
选择本地文件
- 选择要进行
- 修改
Map Local
配置:Tools
--Map Local
Map Remote
在测试的时候,一般会在很多个环境中,比如一开始服务没有上线的时候,需要在线下的测试环境中进行测试。等到服务完成开发之后,可能就可以切换到预发布环境中继续测试。等到服务端的功能没有问题了,还会正式发布到线上,还需要去线上进行测试。
在这种情况下,如果使用 Map Remote
功能就可以轻松的切换各种环境了。
Map Remote 原理
Map Remote
是将指定的网络请求重定向到另一个服务器。
Map Remote 实战
- 场景
- 访问百度,转发至豆瓣
- 访问开发环境,转发至测试环境
- 前端:https://service.hogwarts.ceshiren.com/
- 后端测试环境:https://backend.service.hogwarts.ceshiren.com/test/report/showMapLocal
- 后端开发环境: https://backend.service.hogwarts.ceshiren.com/dev/report/showMapLocal
- 操作
- 选择接口,点击鼠标右键,选择
Map Remote
进入到设置页面 - 设置重定向的接口信息
- 点击
ok
生效 - 修改设置:
Tools
--Map Remote
找对对应接口双击进入修改界面
- 选择接口,点击鼠标右键,选择
总结
- Rewrite
- Map Local
- Map Remote