实际测试过程中,我们常常需要修改跨域请求的返回值进行接口测试,而使用 charles 进行接口测试时,Breakpoints 和 MapLocal 都无法很好实现跨域接口测试。这里介绍一个工具: Mock app ,接下来会介绍结合 charles 的 Map Remote 功能和 Mock app 来实现跨域接口测试。
假设这样一个场景:我们在 a.com 页面请求 b.com 的数据,需要修改 b.com 的返回值,可以按如下步骤操作。
Mock app 安装
1、下载 Mock app
https://github.com/xiguaxigua/mockapp/releases
Mac版本Mock app zip包下载地址
2、安装 Mock app
由于该 app 未在App Store上架,故需要进行安全性设置:进入系统偏好设置 -> 安全性与隐私 -> 通用 -> 允许从以下位置下载的应用,选择 “ App store 和被认可的开发者 ”
3、打开Mock app,可以看到本地 ip 及端口、服务状态、路径新增、路径设置。界面如下:
步骤
1、打开 charles,在 a.com 页面请求 b.com 的数据
2、打开 Mock app ,根据测试需求,准备测试数据
1)新建路径,选择请求方式、响应方式、延时时间,在内容区域编辑返回值,点击“保存”
2)服务状态为“开启”
3)点击“拷贝链接”
3、将 b.com 链接单击右键选择 Map Remote,在“Edit Mapping”中的 Map To -> Host,粘贴步骤2拷贝的链接
4、重新在 a.com 页面请求 b.com 的数据,此时得到的返回值为 mock 的数据,即实现了跨域请求进行接口测试
总结
本篇文章主要介绍了关于如何解决跨域接口数据修改的方法,下一篇文章会介绍引起跨域的原因以及 mockapp 配合 charles 解决这个问题的原理。