前言
   测试中,我们经常会遇到一些边界值数据很难造出来,首先能想到的是能否可以模拟这些场景,以覆盖case,这时经常需要修改接口请求或者返回数据。在我之前的文章有介绍如何通过打断点的方式进行修改,但这会有个问题,即如果客户端一方长时间得不到响应(手工修改响应数据包时,造成客户端超时未收到服务器回答),有些网站就会重新发送新的数据连接。为避免这一情况发生,可以使用Charles其他修改小工具。Charles还提供了 Map Remote、Map Local、及Rewrite功能,都可以达到修改服务器返回内容的目的,三种的区别分别是:
  1.Map Remote是将指定的网络请求重定向到另一个网址上
  2.Map Local是将指定的网络请求重定向本地文件上
  3.Rewrite是对网络请求进行一下正则替换

1.Map Remote

   选择指定接口链接,右键选择 Map Remote

Charles怎么修改返回参数值 charles修改接口数据_接口测试


进入Map Remote Setting页面,在Map To中设置好要重定向的地址即可,如下图

Charles怎么修改返回参数值 charles修改接口数据_数据_02


设置之后,重新请求该接口,我们会发现返回的response已经是重定向的数据了;

2.Map Local

   选择指定接口链接,右键选择Save Response,将返回的数据保存到本地;然后修改保存的本地数据,再在刚指定的链接上,右键选择Map Local…,进入Map Local Setting页面,直接上传修改后的本地文件即可,如下图: 

Charles怎么修改返回参数值 charles修改接口数据_Charles怎么修改返回参数值_03


重新访问接口,会发现接口返回数据已经发生变化,返回的是自己刚修改的本地数据值;

3.Rewrite

   如果可以直接对某个值进行正则验证,菜单选择【Tools】→【Rewrite】,在打开的对话框中勾选【Enable Rewrite】复选框,在左侧栏点击【Add】,如

Charles怎么修改返回参数值 charles修改接口数据_Charles怎么修改返回参数值_04


Charles怎么修改返回参数值 charles修改接口数据_数据_05


点击该设置对话框右上方的编辑框的【Add】按钮,添加将要篡改的URL,同样点击右下方的【Add】按钮,选择篡改HTTP的哪个部分、输入匹配的值和替换的值。如

Charles怎么修改返回参数值 charles修改接口数据_charles_06


对接口返回的json格式内容的一个key-value对进行了替换。对于value为空的字段,我们要写作null,如"name":null。这样当接口数据返回时,如果匹配指定字符,则会进行替换。