1、Charles简介css
1.Charles是一款代理服务器,经过成为电脑或者浏览器的代理,然后截取请求和请求结果达到抓包目的。前端
2.Charles是用Java写的,可以在Windows,Mac,Linux上使用。json
3.Charles支持抓取http、https协议的请求,不支持socket。windows
4.Charles会自动配置IE浏览器和工具的代理设置,打开工具就已是抓包状态。后端
5.Charles可以让开发者查看全部网络和机器之间的HTTP流量状况,包括请求、响应、HTTP头信息(包含cookies和缓存等),能够检查HTML、CSS和RSS内容是否标准,用于网页的开发和调试等。浏览器
2、Charles主要用途缓存
1.支持SSL(Secure Sockets Layer 安全套件层)代理,能够截取分析SSL请求。安全
2.支持流量控制,能够模拟慢速网络以及等待时间(Latency)较长的请求。服务器
3.支持重发网络请求,方便后端调试。微信
4.支持修改网络请求参数(客户端向服务器发送时,能够修改后再转发出去)。
5.支持网络请求的截获并动态修改。
6.支持AJAX调试,能够自动将json或xml数据格式化,方便查看。
7.支持AMF调试,能够将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
8.检查HTML、CSS和RSS内容是否符合W3C标准。
9.支持模拟慢速网络,主要是模仿手机2G/3G/4G 的访问流程。
10.支持本地映射和远程映射,好比能够把线上资源映射到本地某个文件夹下,这样能够处理一些特殊状况下的 bug 和线上调试(网络的 css,js 等资源用的是本地代码,可本地随便修改,数据之类是线上环境,方便在线调试);
11.能够抓手机端访问的资源(若是是配置 HOST 的环境,手机能够借用 host 配置进入测试环境)。
3、Charles原理
注意:此时 Charles 发给服务器的数据,不必定是客户端请求的数据;Charles 在接到客户端的请求时能够自由的修改数据,甚至能够直接 Block 客户端发的请求。
服务器接收请求后的返回数据,也会先到Charles,通过Charles过滤后再发给客户端。同理,客户端接收的数据,不必定就是服务器返回的数据,而是Charles给的数据;正由于上面的原理,因此Charles能实现的功能,对前端开发者来讲很是有吸引力,至关于请求和响应均可控,并且Charles为了控制更加方面,提供了不少简洁的操做。
3、Charles经常使用功能
1.过滤网络请求
2.模拟慢速网络
3.修改网络请求内容
4.给服务器作压力测试
4、Charles破解安装
相对于Wireshark,Fiddler,HttpWatch等抓包工具,Charles更加简单明了。
Charles 是收费软件,能够免费试用 30 天。试用期事后,未付费的用户仍然能够继续使用,可是每次使用时间不能超过 30 分钟,而且启动时将会有 10 秒种的延时。所以,该付费方案对用户算至关友好的,即便长期不付费,也能使用完整的软件功能。只是当须要长时间进行封包调试时,会由于 Charles 强制关闭而遇到影响。
(目前最新版本是 V4.5.4 ,CharlesV4.5.4安装包及对应破解补丁jar包下载可在ITester软件测试小栈后台回复“Charles”获取。)
破解安装步骤:
1.安装Charles前先装好Java环境;
2.点击charles-proxy-4.5.4.msi执行安装,若安装后提示the error code is 2503。
解决办法:打开任务管理器 ->文件->运行新任务-> 输入【程序安装全路径+后缀名】->勾选“以系统管理权限建立此任务”,如图所示:
3.破解Charles:下载安装Charles后,将破解补丁jar包粘贴到charles的lib文件下,而后将原来命名为charles.jar文件替换掉便可;
macOS:/Applications/Charles.app/Contents/Java/charles.jar
Windows: C:\Program Files\Charles\lib\charles.jar(默认安装在C盘,不然找到本身安装的对应目录)
5、Charles抓包配置
将 Charles 设置成系统代理:选择菜单中的 “Proxy” -> “Mac OS X Proxy/windows proxy” 来将 Charles 设置成系统代理。
6、Charles经常使用功能介绍
一般状况下,咱们须要对网络请求进行过滤,只监控向指定目录服务器上发送的请求。对于这种需求,有如下几种办法:
方法一:在主界面的中部的 Filter 栏中填入须要过滤出来的关键字。例如微信公众平台的地址是:https://mp.weixin.qq.com , 那么只须要在 Filter 栏中填入weixin 便可。
方法二:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,而后选择 Include 栏,选择添加一个项目,而后填入须要监控的协议,主机地址,端口号。这样就能够只截取目标网站的封包了。以下图所示:
一般状况下,咱们使用方法一:作一些临时性的封包过滤,使用方法二:作一些常常性的封包过滤。
方法三:在想过滤的网络请求上右击,选择 “Focus”,以后在 Filter 一栏勾选上 Focussed 一项。
在作移动开发的时候,咱们经常须要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常,Charles 对此提供了很好的支持。
在 Charles 的菜单上,选择 “Proxy”–>“Throttle Setting” 项,在以后弹出的对话框中,咱们能够勾选上 “Enable Throttling”,而且能够设置 Throttle Preset 的类型。以下图所示:
若是咱们只想模拟指定网站的慢速网络,能够再勾选上图中的 “Only for selected hosts” 项,而后在对话框的下半部分设置中增长指定的 hosts 项便可。
有些时候为了调试服务器的接口,咱们须要反复尝试不一样参数的网络请求。Charles 能够方便地提供网络请求的修改和重发功能。
1.在相应的网络请求上点击右键,选择 “Breakpoints”;
2.从新执行这个请求;
3.点击edit,编辑请求,点击execute;
4.进入编辑响应页面,点击execute。
5.查看手机端响应结果。
注意:compose也能达到相同效果,但仅针对当前这次请求。而打了断点,每次发送这个请求,都会要求去编辑。
咱们可使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法以下:
咱们在想打压的网络请求上(POST 或 GET 请求都可)右击,而后选择 「Repeat Advanced」菜单项,以下所示:
能够发现该请求的处理时间,是随着迭代次数的增长和并发数的增长而增长的。
想要获取相关资料和软件 ?
Q群:727998947