这款工具宏哥还是按照Fiddler的思路讲解和分享,方便小伙伴或者童鞋们理解和接受。今天的主要就是讲解和分享Charles的—些理论基础知识。
Charles不仅是在Pc端(Windows、Mac和Linux各个系统)下常用的网络抓包截取工具之一,而且也是在移动端(Android和1os系统)常用的网络抓包截取工具之一。在做开发和测试时,我们为了调试客户端与服务器端的网络通讯协议,常常需要截取网络抓包来分析。
Charles和Fiddler类似的原理,通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络抓包的截取和分析。
除了在做开发和测试中调试端口外,Charles也可以用于分析第三方应用的通讯协议。配Charles的SSL功能,Charles 还可以分析Https协议。
Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。因此,该付费方案对广大用户还是相当友好的,即使你长期不付费,也能使用完整的软件功能。只是当你需要长时间进行封包调试时,会因为Charles强制关闭而遇到影响。
如果你想学习接口自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a
Charles主要的功能包括:
1.抓取Http和Https的请求和响应,抓包是最常用的了。
2.重发网络请求,方便后端调试,复杂和特殊情况下的一件重发还是非常爽的(捕获的记录,直接repeat 就可以了,如果想修改还可以修改)。
3.修改网络请求参数(客户端向服务器发送的时候,可以修改后再转发出去)。
4.网络请求的截获和动态修改。
5.支持模拟慢速网络,主要是模仿手机上的2G/3G/4G的访问流程。
6.支持本地映射和远程映射,比如你可以把线上资源映射到本地某个文件夹下,这样可以方面的处理一些特殊情况下的 bug和线上调试(网络的css,js等资源用的是本地代码,这些你可以本地随便修改,数据之类的都是线上的环境,方面在线调试);
7.可以抓手机端访问的资源(如果是配置HOST的环境,手机可以借用host配置进入测试环境)
charles支持的操作系统包括:
Windows 64 bit(msi Windows 32 bit(msi)
macOS(dmg)
Linux 64 bit(tar.gz) Linux 32 bit(tar.gz)
打开浏览器访问Charles官网,下载相应系统的Charles安装包,然后安装即可:
Windows:运行安装应用程序以在程序菜单中安装Charles。
Mac OSX:通过双击解压缩下载文件,然后将Charles应用程序复制到Applications目录中。
Linux: Charles拥有APT和YUM存储库,如果你有基于Debian 或基于Red Hat的Linux发行版,这是安装Charles 的首选方法。否则,将tar:gz文件解压缩到适当的站点。如果您以前安装过Charles并且正在进行升级;首先确保Charles没有运行,然后安装或复制在以前安上。通过运行bin/charles脚本启动Charles。
1.charles与fiddler相比,最大的优点就是跨平台。可以支持Windows,MacOs,ios,Android。
Charles是一款常用的网络抓包工具,启动Charles后,会自动开启的浏览器代理进行网络请求截取,Charles和Fiddler基本功能差不多,只是Fiddler是免费的,但是由于Fiddler是c#语言开发的前期没有MAC版,后期推出一款Fiddler Everywhere:可以运行在任何浏览器,任何系统、跨平台(Windows、Mac、Linux)的一款web调试代理工具。它记录了计算机和Internet之间的所有HTTP(S)通信,可以检查和编辑通信,并拥有Mock请求以及修改响应返回的能力。但是好不好用宏哥不知道。Charles是属于收费软件,但是功能还是都能用的,只是有时间限制。如果我们破解了就没有这一限制了。
2.在实际开发、测试过程中需要通过代理截取网络请求的报文来快速定位问题。目前项目更多采用的是https,Fiddler在这方面并不如charles好用在实际开发、测试过程中需要通过代理截取网络请求的报文来快速定位问题。目前项目更多采用的是https,Fiddler在这方面并不如Charles好用。
3.支持按域名和接口查看报文,简洁明了
4.支持反向代理
5.网络限速,可选择网络类型
6.可以解析AMF协议
6.1下载Charles
官网下载: https: / / www.charlesproxy.com/具体步骤如下:
1.访问官网下载地址后,如下图所示:
⒉.点击右上角的"DOWNLOAD",如下图所示:
3.点击右上角的"DOWNLOAD"后,进入下载页面,如下图所示:
4.选择你对应的操作系统(宏哥这里下载的是Windows的操作系统),然后点击对应的操作系统的安装包开始下载(这里默认下载的是最新版本的charles),如下图所示:
5.下载完成后,我们就开始安装Charles。
6.2安装Charles
下载完成安装包,我们开始安装Charles,具体操作步骤如下:
1.鼠标双击我们下载好的安装包,如下图所示:
2.双击后,弹出运行界面,如下图所示:
3.点击“运行"后,开始下载安装组件,如下图所示:
4.安装组件下载完成,进入如下图所示界面:
5.点击"Next”,勾选同意协议,点击继续点击"Next”,如下图所示:
6.选择安装位置,然后点击“Next”,如下图所示:
7.点击"Install”,如下图所示:
8.稍等一会,点击"Finish"完成Charles的安装。如下图所示:
6.3破解Charles
因为Charles不是免费的,可以免费试用30天,但是30天后,我们就需要付费了,因此宏哥这里就提前将其破解,解决这一问题。具体操作步骤如下:
1.访问在线破解工具,在线生成激活码,地址︰https: //www.zzzmode.com/ mytools/charles/,如下图所示:
2.RegisterName任意随便起个注册的名字,如下图所示:
3.点击“生成"后,生成计算出注册码,如下图所示:
4.启动打开Charles,点击Help->Registered Charles,在弹出的注册界面输入注册的用户名和注册码即可,如下图所示:
Charles抓包原理和Fiddler的抓包原理都是利用了http的中间人攻击漏洞来实现的。
7.1大致原理
Charles作为一个中间人代理,在客户端给服务器端发消息的时候,会截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;服务器返回数据时将截取的数据发送给客户端,伪装成服务器与客户端进行通信。
本文介绍Charles的安装及使用,主要是浅显的探讨其抓包原理;Charles的下载及安装、激活等相关内容。