charles使用教程

Charles使用教程

Charles 是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

 

一、Charles安装

从网站下载完软件资源包之后,将其解压出来,会看到一个名为“charles-proxy-4.2.5.dmg”的可运行程序文件,双击将它打开运行,然后会出现一个弹窗示意我们将“Charles.app”拖入到应用程序的文件夹中

之后便可以在MacOS的“应用程序”栏目中找到它,双击打开运行即可。

二、网页抓包

启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “MacOS Proxy” 来将 Charles 设置成系统代理

然后给电脑安装CA证书,进入Charles的Help菜单中,点击SSL Proxying-Install Charles Root Certificate,安装好后信任此证书。之后通过浏览器请求的网址都会出现在这里。点击某一个网址后会出现请求信息,点击具体的请求后可看到Request和Response等信息。如下图:

需要注意的是,Chrome 和 Firefox 浏览器默认并不使用系统的代理服务器设置,所以在默认情况下无法截取 Chrome 和 Firefox 浏览器的网络通讯内容。如果需要截取的话,在 Chrome 中设置成使用系统的代理服务器设置即可,或者直接将代理服务器设置成 127.0.0.1:8888 也可达到相同效果。

三、手机抓包

首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying”。如下图所示:

在要抓包的手机上点设置-网络-配置代理,代理ip填写电脑当前使用ip,端口号:8888, 然后在手机浏览器里输入http://charlesproxy.com/getssl,下载安装charles证书。如果是苹果手机,需要在设置-通用-信息证书,找到此证书点击信任,设置完成后即可对手机抓包。

 

四、抓包过滤

如果只想针对某个网址抓包,可在 Charles 的菜单栏点击 Proxy->Recording Settings,选择 Include 栏,点击Add,填入需要抓包的地址,这样就可以只对此地址中的请求抓包,过滤掉其他网站的请求信息。

 

五、Map数据

Map Remote 是将指定的网络请求重定向到另一个网址请求地址,选择 “Tools”->”Map Remote” 进入到相应功能的设置页,填写网络重定向的源地址和目的地址,对于不需要限制的条件可以不填,如下图示例,将所有gitlab.wanwudezhi.com的请求重定向到了10.10.57.124

Map Local 是将指定的网络请求重定向到本地文件。我们需要填写重定向的源地址和本地的目标文件。首先将网络请求结果保存,使用 Charles 提供的 “Save Response…” 功能将请求结果保存到本地(如下图所示),然后根据测试需要,修改我们想要返回的数据,成为我们的目标映射文件。

修改好后选定接口点击Map Local, 上传修改后的文件点击ok,此时再去访问一次该接口,这时返回的数据就是我们想要的结果了。

 

六、修改请求体内容

首先点击自己想要修改的请求,右击该请求选择Compose,则会出现以下界面,点击参数可直接修改;点击Add可在该请求上添加参数;选中某条参数点击Remove可删除该参数,点击Execute可将修改后的请求重新发送到服务器,并获取到修改后返回的参数。

 

七、Rewrite返回数据替换

Rewrite功能适合对某一类网络请做返回内容的替换,以达到修改结果的目的。例如:http://pre-portal.wanwudezhi.com/module-user/api/v1/user/queryMyInfo,我们要将接口返回内容中含有“活在当下”的字样替换成“春夏秋冬”,

 

首先,菜单选择【Tools】→【Rewrite】,在打开的对话框中勾选【Enable Rewrite】复选框,在左侧Sets栏点击【Add】

 

然后在右侧Locations栏点击【Add】,在弹出的{Edit Location}对话框中,填入相关API,点击【OK】

接着,在右侧Rules栏点击【Add】,在弹出的{Rewrite Rule}对话框中,填入相关参数,最后点击【OK】

最后点击【Apply】和【OK】,重新发起请求,修改的内容就生效了

八、模拟慢网速

在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles 对此需求提供了很好的支持。可以直接点击Charles里的小乌龟图标,进行弱网模拟。

如果想对弱网设置具体参数,在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在之后弹出的对话框中,我们可以勾选上 “Enable Throttling”,设置 Throttle Preset 的类型,填写好各项数值,如下图所示:

如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

八、服务器压测

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力

在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:

接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。

posted @ 2020-04-30 10:21  朱子威  阅读(1001)  评论(0编辑  收藏  举报