Charles之修改请求、返回信息

时间:2024-03-30 09:39:07

原创: George555    公众号: 测试江湖路  

如果这些内容对你有帮助,也可以打开微信扫一扫,加关注:

Charles之修改请求、返回信息

 

    之前一直苦恼着,怎么修改接口返回值内容,来模拟一个虚拟假接口协议,供当前业务系统接口配合使用。后来经过查资料,翻百度,发现一个很好用的方法,在这里总结下,防止久而忘之。

    修改返回值常用的有3种方法:

    1.Map Remote:远端映射,把指定的网络请求(From)重定向(To)到另一个网址上

    2.Map Local:本地映射,把指定的网络请求(From)重定向(To)到本地文件上

    3.Rewrite:把网络请求进行一下正则替换,可以匹配多个请求

    说明:经过这样的重定向后就可以实现,当触发真实业务接口时,只有遇到此处重定向的接口时,会替换掉已重定向接口的请求或返回内容。其他接口还是系统已有的接口。

一、Map Remote:

    进入Tools-Map Remote后,弹出如下窗口:

Charles之修改请求、返回信息

勾选Enable Map Remote-点Add,弹出如下图:

Charles之修改请求、返回信息

a.Map From:填入你指定的需要修改返回值内容的原始接口信息(http/https、Host、Port、Path、Query)

说明:原始接口信息可以通过在指定接口上右键-选择Viewer Mappings来获取,如下图:

Charles之修改请求、返回信息

Charles之修改请求、返回信息

b.Map To:填入你要模拟的虚拟接口的信息的请求部分。当然此接口必须真实可以访问。

特殊说明:比如利用moco手段模拟的接口,这样对应的返回值部分将在moco的接口中提现,如果要修改返回值内容,将moco中的接口返回值进行修改即可。

二、Map Local:

进入Tools-Map Local后,弹出如下窗口:

Charles之修改请求、返回信息

勾选Enable Map Local-点Add,弹出如下图:

Charles之修改请求、返回信息

a.Map From:填入你指定的需要修改返回值内容的原始接口信息(http/https、Host、Port、Path、Query) 。原始信息获取同Map Remote方式相同

b.Map To:选择本地存在的接口返回值文件。

说明:返回值文件生成通过以下方式:

接口上右键-Save Response

Charles之修改请求、返回信息

三、Rewrite:

进入Tools-Rewrite后,弹出如下窗口:

Charles之修改请求、返回信息

勾选Enable Rewrite后点Add,如下图:

Charles之修改请求、返回信息

Location-Add点击后,如下图:

Charles之修改请求、返回信息

此功能同Map Remote/Map Local里的Map From配置类似。

在Rules板块点Add,如下图:

Charles之修改请求、返回信息

此处是需要修改返回值,模拟的正则匹配规则配置。

Type中有如下选项:

    Add Header

    Modify Header

    Remove Header

    Host:修改域名 (最近项目中用到了这个,把所有请求域名都给换掉了)

    Path

    URL

    Add Query Param

    Modify Query Param

    Remove Query Param

    Response Status

    Body

说明:表示可以用正则匹配方式替换这些类型中的信息。然后再发送请求出去。

 

【示例1】:遇到Locations中指定接口返回值中有“测试”两个字的 全部替换成 “修改测试后”。如果未指定Locations,则对所有接口起作用

Charles之修改请求、返回信息

 

【示例2】:修改请求的域名

    Type中选择Host,Match的value中输入需要替换的原接口域名。

Replace中的value输入新域名即可。点ok后点Apply结束。下图则是业务app发出的请求:

Charles之修改请求、返回信息

    Notes中显示Rewrite Tool: oldhost.com" => "newhost.com"

 

 

#####欢迎大家加群交流####

微信群请先加群主微信,群主会拉各位小伙伴进群。

Charles之修改请求、返回信息