前言
测试中,我们经常会遇到一些边界值数据很难造出来,首先能想到的是能否可以模拟这些场景,以覆盖case,这时经常需要修改接口请求或者返回数据。在我之前的文章有介绍如何通过打断点的方式进行修改,但这会有个问题,即如果客户端一方长时间得不到响应(手工修改响应数据包时,造成客户端超时未收到服务器回答),有些网站就会重新发送新的数据连接。为避免这一情况发生,可以使用Charles其他修改小工具。Charles还提供了 Map Remote、Map Local、及Rewrite功能,都可以达到修改服务器返回内容的目的,三种的区别分别是:
1.Map Remote是将指定的网络请求重定向到另一个网址上
2.Map Local是将指定的网络请求重定向本地文件上
3.Rewrite是对网络请求进行一下正则替换
1.Map Remote
选择指定接口链接,右键选择 Map Remote
进入Map Remote Setting页面,在Map To中设置好要重定向的地址即可,如下图
设置之后,重新请求该接口,我们会发现返回的response已经是重定向的数据了;
2.Map Local
选择指定接口链接,右键选择Save Response,将返回的数据保存到本地;然后修改保存的本地数据,再在刚指定的链接上,右键选择Map Local…,进入Map Local Setting页面,直接上传修改后的本地文件即可,如下图:
重新访问接口,会发现接口返回数据已经发生变化,返回的是自己刚修改的本地数据值;
3.Rewrite
如果可以直接对某个值进行正则验证,菜单选择【Tools】→【Rewrite】,在打开的对话框中勾选【Enable Rewrite】复选框,在左侧栏点击【Add】,如
点击该设置对话框右上方的编辑框的【Add】按钮,添加将要篡改的URL,同样点击右下方的【Add】按钮,选择篡改HTTP的哪个部分、输入匹配的值和替换的值。如
对接口返回的json格式内容的一个key-value对进行了替换。对于value为空的字段,我们要写作null,如"name":null。这样当接口数据返回时,如果匹配指定字符,则会进行替换。