Charles的Map功能可以将某个请求进行重定向,用重定向的内容响应请求的内容,分为两种:Map Local和Map Remote。
Map Local:将某个网络请求重定向到本地某个文件
Map Remote:将某个网络请求重定向到另一个网络请求
两者都可以将js、css、html以及api接口进行重定向,此外也可以使用通配符来进行简单的批量匹配,达到批量重定向的目的。
1、 Map Local(重定向到本地某个文件)
使用情景:一个项目上线后,发现js、css或者返回参数 bug,怎样调试?线上项目的静态文件无法直接编辑,有何方法在不改变其他参数的情况下直接用本地的开发文件替换线上的文件从而方便调试?这里我们就可以使用Map Local功能,映射到线上环境。
对于有一些复杂的网络请求结果,我们可以先使用 Charles 提供的 “Save Response…” 功能,
将请求结果保存到本地(如下图所示),然后修改保存在本地的文件,该文件为我们的目标映射文件。
在 Charles 的菜单中,选择 “Tools”->”Local”
或者将一个指定的网络请求右键找到“Map Local映射到了本地的一个经过修改的文件中。
选择你保存在本地的文件
Map Local 在使用的时候,有一个潜在的问题,就是其返回的 Http Response Header 与正常的请求并不一样。这个时候如果客户端校验了 Http Response Header 中的部分内容,就会使得该功能失效。解决办法是同时使用 Map Local 以下面提到的 Rewrite 功能,将相关的 Http 头 Rewrite 成我们希望的内容。
注:在测试结果后需要“tool” ->“Map Local”里取消 “Enable Map Local”勾选,否则该请求会一直访问你配置的本地文件。
2、 Map Remote(重定向到另一个网络请求)
使用情景:进行一个需求开发,测试环境是:test.xxxx.com,测试完成,前端开发者上线了,现在测试人员需要跟踪线上情况,如何切到线上环境?这里我们就可以使用Map Remote功能,映射到线上环境。
在 Charles 的菜单中,选择 “Tools”->”Map Remote”
或者将一个指定的网络请求右键找到“Map Remote”
在下图界面中Map to填写你需要配置的线上环境,不需要配置的地方可以留空。
注:在测试结果后需要“tool” ->“Map Remote”里取消 “Enable Map Remote”勾选,否则该请求会一直访问你配置的远程环境。
原创文章,作者:iTestCat,保留所有权利,禁止转载,如若转载,请联系作者!