最近在项目调试的过程中偶然发现了Charles右键的一些功能,感觉还不错,索性就自己去琢磨了一下Charles中的一些实用的次要功能。这些东西在Charles的官网都有详细的介绍,想要详细了解的可以移步Charles官网
SSL
略,具体可以参考另一篇
Charles的HTTPS抓包方法及原理分析
Breakpoint
断点可以让我们在观察和修改请求的参数内容以及请求的返回结果。
设置
开启入口位于菜单的Proxy->Enable Breakpoint等
设置入口位于菜单的Proxy->Breakpoint Settings
可以在弹出的界面设置开启断点以及设置我们需要断点的请求,比如如下添加一个对m.baidu.com域名请求的断点
其中,request和response表示的是对发起请求和返回结果都做断点。
更快捷的,你可以在列表界面的任意一个『文件夹』或者具体请求URL上右键,然后选择BreakPoints,此时再次右键会发现已经处于勾选状态,此时就表明了该请求处于被断点状态。
值得一提的是GET的参数是在URL链接上的,因此参数不同的话,在URL上右键产生的断点是无法正常工作的。同时通过这种方式添加的断点也会在断点设置界面出现。
使用
断点设置完毕就可以尝试发起请求了,修改请求参数以及返回结果有些时候在和服务端联调的时候还是很有用的。
Throttling
网速模拟,可以模拟链接本代理的设备的网络状况
设置
开启入口位于菜单的Proxy->Start Throttling等
设置入口位于菜单的Proxy->Throttling Settings
对于网络状况的设置上,Charles已经默认提供了一系列的默认配置,当然我们也可以自行添加
使用
如果想要尝试或者评测弱网环境下的某些功能可用性,可以考虑用这个东西进行模拟,很方便也很有效。
Map
请求重定向,可以以Map的方式将某些请求重定向到另外一个请求上
设置
开启和设置入口位于菜单的Tools->Map Remote和Tools->Map Local,其中前者表示将网络请求重定向到另一个网络请求,而后者表示将网络请求重定向到本地的某个文件
我们还可以在具体请求的右键菜单中快速进行Map设置
使用
对于多环境的开发调试,Map Remote可以将我们的正式环境请求重定向至测试环境或者开发机环境,节省了时间同时也可以避免将开发机的链接写到代码中而忘记及时修改的问题。对于服务端尚未开发完成的接口,Map Local可以方便的将本地Mock的结果返回,避免联调等待。
Rewrite
请求重写,允许我们对请求的Header,Host,Url,Path,Query Param, Response Status,Body进行重写。它的功能比Map更加强大
设置
开启和设置入口位于菜单的Tools->Rewrite
具体需要我们先添加一个规则集,然后再在规则集中添加具体规则
这里添加了一个规则,表示将所有通过m.baidu.com进行hello搜索的请求重写成对hello world的搜索请求。
使用
重写支持正则匹配,而且它包含的可重写内容非常广,虽然配置上稍微有点复杂,但是如果当Charles的其他功能不能满足你的时候,不妨考虑下重写。
Mirror
镜像允许我们将指定的请求的返回结果暂存至磁盘中
设置
开启和设置的入口位于菜单的Tools->Mirror
使用
可以用来做缓存数据,然后使用Map Local让请求在server环境挂掉时也能够正常得到缓存的结果。
其他
Repeat&Repeat Advance
使用Repeat可以重复发送指定请求,比如服务端修复了一个接口返回客户端想要检查是否的确如此,可以直接Repeat,亦或者我们想测试某些服务返回结果的稳定性的时候也可以用Repeat来替代
Edit
使用Edit可以对指定请求进行编辑,允许我们在请求发起前对请求的内容(Url,Headers,Query Param)做编辑,同时可以在返回结果前对返回结果进行编辑。
右键任意一次抓包请求即可进行该操作,相对于其他相近的能力而言,Edit不得不说是快速联调的利器。这个功能也是我写这篇文章的起因。
BlackList&WhiteList
- 黑名单表示对名单内的所有请求做过滤
- 白名单表示仅对名单内的请求做响应
网友评论