Charles 修改接口返回数据

前言

  测试中,我们经常会遇到一些边界值数据很难造出来,首先能想到的是能否可以模拟这些场景,以覆盖case,这时候常需要修改接口请求或者返回数据。可以通过打断点的方式进行修改,但这会有个问题,即如果请求有随机参数,就很难实现了。为避免这一情况发生,可以使用Charles 实现。Charles 还提供了 Map Remote、Map Local、及Rewrite功能,都可以达到修改服务器返回内容的目的,三种的区别分别是:

  1.Map Remote是将指定的网络请求重定向到另一个网址上;也可以只重定向域名;

1.Map Remote(可以映射域名等)

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

 

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

 

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

 

 2.Map Local(映射为本地的响应文件)

  选择指定接口链接,右键选择Save Response,将返回的数据保存到本地(任意格式 或指定格式,具体的话,自己试);然后修改本地的数据保存,再在刚才指定的链接上,右键选择Map Local..,计入Edit Mapping弹窗,直接选择修改后的本地文件即可,如下图;(WEB端、APP端,只要是接口均可;注意:弹窗Query中的内容可清空,否则每次带了随机参数,就拦截不到;)

 

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

 备注:web端 charles map local,F12 Console 报错:No 'Access-Control-Allow-Origin' header is present on the requested resource.(F12 Network 无法加载响应结果),根据https://blog.csdn.net/lyhDream/article/details/118186859 设置后,报错:net::ERR_HTTP2_PROTOCOL_ERROR;遂放弃;

 3.打断点 Breakpoints

1.选中某条请求,点击Breakpoints;

 

 

 2.Breakpoint Settings设置,将该请求的Query信息清除掉,不然可能匹配不到该请求;

 

 

 

 3.拦截到相应请求,并修改相应位置的值;

posted on 2021-12-08 17:25  星空6  阅读(617)  评论(0编辑  收藏  举报

导航