charles常用功能

2018-08-13  本文已影响71人  回调的幸福时光

将charles设置成系统代理

抓包原理:charles是通过将自己设置成代理服务器来完成封包截取的。

windows平台:选择菜单中的"Proxy" -> "Windows Proxy"
mac平台:选择菜单中的"Proxy" -> "Mac OS X Proxy"

查看抓包请求

charles提供两种查看抓包的的视图

  1. structure 视图将网络请求按访问的域名分类
  2. sequence 视图将网络请求按访问的时间排序

过滤网络请求

方法一:使用filter栏

方法二:在菜单栏选择"Proxy" -> "Recording Settings",然后选择 include 项,添加一个 location ,填入需要监控的协议、主机地址、端口号,即可只截取目标服务器的网络请求了。

方法三:在想过滤的网络请求上右击,选择"Focus",之后在 Filter 一栏勾选上 Focussed 选项。

截取手机上的网络请求

charles 上的设置
将代理功能打开,在菜单栏中选择 "proxy" -> "proxy setting", 默认是proxies项,
在 http proxy设置框中,填入代理端口8888,并且勾选 "enable transparent HTTP proxying"。

手机上的设置
打开wifi设置,在详情中找到http 代理一项,选择手动模式,填入 charles 运行所在的电脑的ip,以及端口号8888。

截取 https 通讯协议

安装证书:安装 charles 的CA证书。

电脑上安装证书:
在菜单栏选择 "help" -> "ssl proxying" -> "install charles Root Certificate",之后安装证书即可。

手机上安装证书
在菜单栏选择 "help" -> "ssl proxying" -> "install charles Root Certificate on a Mobile Devices or Remote Browser",会弹出弹窗,内容如下:

configure your devices to use charles as it's  HTTP proxy on x.x.x.x:8888, then browse to chls.pro/ssl to download and install the certificate.

经测试,在iphone上,需要使用safari浏览器才行,使用QQ浏览器无法识别证书,不能安装。

开启截取HTTPS
在菜单栏选择 "proxy" -> "ssl proxy setting" -> ssl proxying,然后勾选 Enable SSL Proxying,添加 location, 输入主机地址、端口号(https默认端口是443)

手机上信任证书
iPhone:设置 -> 通用 -> 关于本机 -> 证书信任设置

模拟慢速网络

在做移动开发的时候,我们常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。

在菜单栏中选择 "proxy" -> "Throttle Setting" ,然后勾选 Enable Throttling,并且可以设置 Throttle Preset 类型。

修改网络请求内容

在以往请求上点击右键,选择 "compose", 即可创建一个可编辑的网络请求。
我们可以修改该请求的任何信息,包括url、端口、参数等,之后点击 "Execute" 即可发送该修改后的网络请求。

给服务器做压力测试

可以使用Charles 的 Repeat 功能来简单地测试服务器的并发能力,方法如下。

在需要测试的网络请求上右击,选择 Repeat Advanced项,可以在弹出的对话框中设置请求次数以及并发线程数。

修改服务器返回内容

有时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。

根据具体的需求,charles 提供了 Map 功能、Rewrite 功能、以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:

Map 功能

charles的 Map 功能分 Map Remote 和 Map local 两种。

在菜单栏中选择 "tools" -> "Map Remote"
需要填写网络重定向的源地址和目的地址,对于不需要限制的条件可以留空。

在菜单栏中选择 "tools" -> "Map Local"
对于复杂的网络请求结果,我们可以先使用 charles 的 save Response 功能, 将请求结果保存到本地,然后稍加修改,成为我们的目标映射文件。

Rewrite 功能

在菜单栏中选择 "tools" -> "Rewrite"

添加 rule ,修改返回内容。
缺点:只能修改简单的字段,复杂的不适合(使用Map Local)

添加rule, 作为代理
更建议使用Map Remote

BreakPoints 功能

临时性
在菜单栏中选择 "proxy" -> "BreakPoints setting"

注意事项
当开启断点功能时,请注意接口的参数部分。
如果某个参数是变化的,charles会认为是另外一个请求,则断点无效。

反向代理

在菜单栏中选择 "proxy" -> "Reverse proxies settings"
反向代理功能允许我们将本地的端口映射到远程的另一个端口上。

设置外部代理,解决与翻墙软件冲突

charles和翻墙软件都是把自己设置成系统代理,会产生冲突。

在菜单栏中选择 "proxy" -> external Proxy Settings

参考

charles从入门到精通

上一篇 下一篇

猜你喜欢

热点阅读