Charles 的 map 功能分为两种:
- Map Remote:将指定的网络请求重定向到另一个地址
- Map Local:将指定的网络请求重定向到本地文件,所谓的数据 mock
Map Local
使用场景
- 当后端接口还未开发完成,可以根据约定好的接口文档构造数据,不耽误测试
- 可以修改接口返回数据,验证前端对于数据的正确展示
最常见的测试场景(举例宜搜小说):
-
数据不易出现:
书名大于15个字,这种全靠运气去碰,当展示不对再想验证的时候,这种书不好找。 -
数据不好构造:
书籍更新推送,每天会进行推送更新的书籍,但是哪本书明天会更新不确定,数据不知道如何构造,通过该方法删除掉某本书已更新的最新章节,就可以达到效果 -
不同场景下界面展示不同
封面页会显示书籍的详细信息,比如:作者、章节数、字数、是否完结等,测试时验证作者名为空、不为空、大于5个字、字数大于10万、100万、小于1万、完结/已完结状态等等,根据需求是有不同的UI展示的,这种情况下找对应的书去一一验证,非常麻烦。通过 map local,仅需要改本地文件,端上刷新页面,就可以看到不同的场景。 -
修改配置
经常会有一些活动开关通过接口配置来获取,当需要测试开关开启或关闭状态时,直接修改本地配置文件就可以,省去与运营人员的沟通成本。
如何使用?
方法一:
Tools - Map Local - Map Local Settings - 勾选 Enable Map Local
点击 Add
会打开 Edit Mapping
设置弹框,输入请求,映射的本地文件等,此处还支持导入导出功能。
方法二:
在要修改的请求上右键 - 点击最底部的 map local
,会打开 Edit Mapping
设置弹框,输入请求,映射的本地文件等。
映射接口请求车成功的前提是:接口数据格式必须与约定的格式一致,一般测试过程中接口是已经联调通过的,所以此处可以使用 save response
方法保存实际响应文件,在文件内直接修改数据就可以啦。
使用:
选中请求 - 右键 - Save Response - 选择保存路径
保存到本地后,用文本编辑器打开,修改对应的数据后,Map Local
设置本地文件路径为保存下来的路径,重新请求,即可生效。
Map Remote
使用场景
重定向请求到测试环境/线上环境
如何使用?
使用方法同上
在 Map Remote Settings
内设置 FROM 域名 和 TO 域名,就是从哪个域名重定向到哪个域名。
实例:
请求域名:qa.android.api.com
重定向域名:android.api.com
- 右键点击请求,选择
Map Remote
- map from host 粘贴请求域名,点击空白区域(会自动拆分项并填入对应区域)
- map to host 粘贴重定向域名
- 点击 ok
再次发送请求,查看请求域名已经变为重定向后的域名。