一、breakpoint断点
Breakpoints功能可用于临时修改一次网络请求结果。当指定的网络请求发生时,使用BreakPoints可截获该请求,这时可以修改该请求的Request参数和Response 返回值。
注意:修改完Request参数需要点击Excute按钮,请求成功后,才能修改Response返回值
1.在所需请求右键选择breakpoints
2.菜单proxy-Breakpoint Settings,选择要修改request还是response。也可两者都勾选。
这里我只勾选一下response,重新发起请求,Charles拦截到如下页面,点击Edlt Response,本来粉丝数是6,我修改为66666,点击execute。
前端页面即显示修改后的响应数据。
request同理。
二、Compose编辑请求
有时候为了调试服务器的接口,需要反复尝试不同参数的网络请求。Charles 提供了网络请求的修改和重发功能。
只需要在以往的网络请求上右击选择“Compose”,即可创建一个可编辑的网络请求。我们可以修改该请求的任何信息,包括 URL 地址、端口、参数等,之后点击 “Execute” 即可发送该修改后的网络请求。
Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便。
三、Rewrite重写
在Charles顶部的菜单栏选择“Tools->Rewrite”,Rewrite功能一般用于对某一类请求的一些值进行全局替换,替换规则支持正则表达式
https://www.bejson.com/othertools/regex/ --正则表达式测试
注:Rewrite 适合应用于对请求的批量和长期修改,对请求数据影响较大(测试结束后经常忘记去掉规则)。所以,在一些轻量级的数据修改场景中,可结合Breakpoint功能修改数据。
四、map映射 重定向
map功能,顾名思义就是将某个请求进行重定向,用重定向后的内容来响应请求的内容;
map功能分为map Local和map Remote,二者区分是:
● map Local:是将某个网络请求重定向到本地的某个文件
● map Remote:是将某个网络请求重定向到另一个网络请求
区别:二者除了重定向文件的位置不同之外,其他功能都是一样的。他们都可以对js、css、html以及api接口均可重定向,此外也可以使用通配符来进行简单的批量匹配,达到批量重定向的目的。
均为Tools中设置,也可以右击一个接口,直接选择设置map Local和 map Remote,会连带出host
五、repeat重发
在 Charles 的请求预览界面中,右键点击某条 / 组请求,在弹出的选项列表中有Repeat和Advanced Repeat两个选项。图示如下:
单击Repeat会重发该请求一次,常用于测试服务接口能否正常访问,客户端能否正常收到返回数据等。
单击Advanced Repeat会弹出重发参数编辑页面,图示如下:
在此编辑界面上,可以自定义Iterations(请求次数)、 Concurrency(每一次重发的并发数)和 Repeat(重发延时),常用于对服务接口进行压力测试。
简单的图表查看
六、throttling弱网测试
1、在 Charles菜单栏 -> Proxy -> Throttle Settings中可以启用Throttling(节流)功能,并自定义Locations(受限服务接口)和Throttle Configuration(节流配置)。
2、支持对Throttle preset(预置的数据传输方式)、Bandwidth(带宽) Utilisation(利用比率)、 Round-trip latency(往返延迟)、MTU(最大传输单元) Reliability(可靠性) Stability(稳定性)等参数进行编辑。
3、其中,在Throttle preset支持模拟 3G/4G 网络环境。图示如下
使用 Throttle 功能,可以方便地排查因为弱网而导致的 bug,而这类 bug 在线上很容易出现,而且很难排查复现。