测试必备工具之最强抓包神器 Charles,你会了么?
前言
作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷;
比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析;比如Wireshark,专注于调试网络问以及和分析网络协议包分析...
然而,今天我要给大家分享的一款抓包工具叫做Charles,同样也是一个抓包神器!
Charles是一款的抓包修改工具,其实也是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。
它是用Java编写的,能支持Win体验可以使用免费试用版本,试用时间为30天。试用期过后每次只能试用30分钟,并且每次启动也会有延时。
Charles主要功能非常丰富,包括:
1、截取HTTP和HTTPS网络协议
2、支持重发网络请求,方便后端调试
3、支持网络请求的截获并动态修改
4、支持网络请求的截获并动态修改
5、支持模拟网络
下载安装包
去Charles的官网,下载这个工具的安装包:
https://www.charlesproxy.com/download/
安装
双击这个安装包,并且一路next即可完成安装。
运行软件
安装完成之后,找到这个文件的桌面快捷方式
双击打开即可运行软件。
打开即可看到如上图的界面。
设置代理
如开头讲到的,Charles是通过将自己设置为电脑或者浏览器的代理从而达到抓包的目的的。
所以设置代理是在菜单栏【Proxy】—【windows Proxy】,勾选即可。
设置为代理之后,就可以开始抓取数据包了。
视图
从工具打开后的主页面可以发现,Charles 主要提供两种查看封包的视图,分别名为 “Structure” 和 “Sequence”。
1、Structure 视图将网络请求按访问的域名分类。
这种视图我个人认为非常方便阅读和查找数据报文,因为同一个域名的所有新增请求都会添加到这个域名类中,而不会因为数据包过多而导致不方便查找的问题。
2、Sequence 视图将网络请求按访问的时间排序
这个视图跟其他的抓包工具就基本类似了。这种视图的一个弊端就是数据包过多会不太方便查找。
过滤安装包
Charles也考虑到了数据包过多不方便查找的问题,所以提供了网络请求过滤功能。通过过滤监控指定服务器的请求。
要设置Charles数据包的过滤,有三种方法:
方法一:在主界面的中部的 Filter 栏中填入需要过滤出来的关键字。
例如我们的服务器的地址是:http://www.lemfix.com/ , 那么只需要在 Filter 栏中填入"lemfix'即可。回车后即可过滤出对应的数据包。
方法二:抓完包之后,在想过滤的网络请求上右击,选择 “Focus”,之后在 Filter 一栏勾选上“Focus” 一项,如下图所示:
这样可以快速地过滤出去一些不关心网络请求(收起到other hosts里),只显示我选中的数据包。
方法三:在 Charles 的菜单栏选择 “Proxy”–>“Recording Settings”,然后选择 Include 栏,点击“add”新增加一个项目,然后填入需要监控的协议(如http),主机地址(想过滤的域名或者IP),端口号。
配好之后,点击OK。这样就可以只截取目标网站的封包了。如下图所示:
通常情况下,第一、二种方法可以用于临时性包过滤,如果有些服务器是你经常性访问的,可以用方法三设置为常规过滤规则。
经过以上的步骤,就可以使用Charles工具开始愉快的抓包了!