在Charles抓包工具之前讲过了Fiddler抓包工具,在讲之前先来解决读者的该怎么读这两个单词( Charles 读:雀奥斯 和 Fiddler 读:非的了 ),下面进入正题,有使用过抓包工具的或者看过之前关于Fiddler抓包工具的篇目的话,大致清楚了抓包的原理,不知道也可以去看一下关于Fiddler的篇目,在浏览器当中通过快捷键F12也可以,但没有这些工具的功能比较全一些,下面先来下载安装抓包工具 —— Charles 。
下载安装 Charles
!急用跳转下载:Download a Free Trial of Charles • Charles Web Debugging Proxy
进入Charles首页官网 : Charles官网
完成以上操作就以及完成了,桌面没有这个Charles的图标,但可以在【搜索】或者【最近添加】可以找到,如果想要在桌面出现图标,则搜索找到后右键图标【打开文件位置】然后找到主程序exe文件再进行右键发送快捷方式到桌面就可以了。
打开之后就可以进入到Charles的主页面了;
Charles 注册码
Charles不像Fiddler是免费的,所以这里提供了 “懂得都懂” 的解决方案;点击【Help】的第一个选项会弹出窗口可以填写授权码的,获取授权码的可以在这里获取 —— Charles获取授权码 ,任意填写用户名,然后生成授权码,不懂还可以看这里 —— 参考 ,完成之后重新打开Charles就不会再出现一个提示30天的使用权,点赞关注哦!
牛刀小试
下面来用 Charles 来尝试抓取一下:
1. 打开浏览器来访问一下这个 天气网 :跳转接口
2. 打开 Charles 抓包工具,为了避免抓取到其他的一些请求,使用Filter过滤器过滤一下:
过滤出来的这些就是与这个天气网所抓取的相关的请求了;那么可以来简单的看一下这些请求当中有哪些内容。
配置抓取 HTTPS 协议的请求
http请求和https请求有什么不同呢?简单的来讲就是https是安全版的http,要实现网站的https访问,就必须使用SSL证书,SSL证书的主要作用就是身份认证和传输加密,下面在Charles中来看一下https的请求:
可以看到右侧红色方框的内容出现了乱码,下面来配置抓取https协议的请求,安装下证书:
设置之后仍是乱码,下面来看一下这个【Overview】中的一些信息:
打开顶部菜单栏【Proxy】下的【ProxySettings...】
再打开顶部菜单栏【Proxy】下的【SSL Proxying Settings ...】
下面来看一下清空一下Charles,然后切回浏览器重新请求一下:
这里只需要将对应的域名加到这个配置里面即可解决!
配置通用 HTTPS 抓包规则 (安装证书PC)
上述讲了如何来抓取HTTPS协议的请求,但这里存在一个问题就是每次抓取对应的HTTPS请求的时候都需要添加这个域名,比较麻烦,那么如何来设置通用的来抓取HTTPS请求;
1. 点击顶部菜单栏【Proxy】下的【SSL Proxy Setting...】
2. 如下来配置:
设置使用断点
如何在Charles中来设置使用断点,在Fiddler当中使用的话是在请求之前(before requests)和在响应之后( after response )来设置断点,在Fiddler当中演示了在After Responses后修改响应数据,看过之前讲Fiddler抓包工具篇目的就比较清楚了。那么还是以同样的一个案例,在登录的时候,如果手机号码填写后在点击获取验证码的时候前后端会先进行一个手机号的校验,手机号知道是11位的然后第二位不可能是2等这些规则,那么下面来设置一下断点:
* 测试使用的网站: 跳转链接 (可以自己找登录测试)
刷新一下切回Charles就可以看到了,那么为了方便查看使用过滤器过滤其他请求;
右键打开菜单选择【Breakpoints】断点
下面来输入不合法的手机号码测试:
切回Charles可以看到Charles在抓取到该请求且在请求前和响应后进行断点:
执行之后可以切回浏览器,并没有直接响应到浏览器,还要一个断点是在响应之后,在服务器响应回来之后;
以上的响应结果就是输入不合法的手机号的响应结果,那么来进行修改它的响应结果然后执行,再切回浏览器查看效果;
可以看到请求的响应结果已经被修改了,以上这个就是设置断点的一个使用!
模拟弱网测试
弱网测试就是网络比较差的环境的一个测试,我们说浏览器也可以抓包,但不像Fiddler和Charles这些工具强,相信在浏览器当中你也用过这个模拟弱网的功能。快捷键【F12】之后;
虽然只有这个快速和低俗3G,但你可以来自定义【Custom】添加【Add...】
那么在Charles中如何来模拟弱网呢?
切回浏览器重新刷新页面时候,上面的标签会在转,
同时还可以在顶部的菜单栏上设置【Throttle Settings...】,这些同样可以来设置弱网来达到模拟弱网的测试效果:
以上就是模拟弱网测试的全部内容,下面来看一下如何来移动端设备进行抓包配置,在此之前先来安装证书.
配置移动端设备 (移动设备安装证书)
点击顶部菜单栏的【Help】下的【SSL Proxying】
PC端模拟器
现如今在PC端也能够来模拟移动端设备,下面先来使用PC端模拟器来模拟移动设备,这里演示选用的是 —— 雷神模拟器,当然也可以选择其他的模拟器,像逍遥模拟器,夜神模拟器等这些模拟器。
打开雷声模拟器,一般模拟器打开后机型会是平板,那么可以设置成手机。
配置完成之后保存,然后打开模拟器上的浏览器,然后输入如下地址:
chls.pro/ssl
下载完成之后来安装证书;
安装完成之后下面来打开浏览器发起请求,看Charles能否抓取到?
以上就是使用Charles在PC端使用模拟器来模拟移动端设备进行一个抓包!下面来进行安卓真机上进行一个抓包!
Android 真机抓包配置
在安卓真机上来进行一个抓包,首先需要一个安卓机,和PC端处在同一局域网,使用WIFI即可,与上面模拟器上的操作一致,看过Fiddler抓包篇目应该比较清楚。
如下,同样的主机名和端口号,可以在Charles上点击顶部菜单【Help】下的【SSL Proxy】
(以上是Fiddler的安装方法),最后一步安装证书就是去访问 chls.pro/ssl 这个地址,然后去安装证书即可,如下:
下面来测试一下安卓真机,在手机上配置之后保证手机与电脑在同一个WIFI下,即同一局域网内。
安卓手机上浏览器发出的请求:
PC端Charles抓取到的请求:
以上就是如何在安卓真机上进行抓包的配置。
iPhone 手机抓包配置
安卓和iPhone的配置大同小异,只是安装证书的位置不同而已,打开【设置】,往下找到【通用】,之后再往下滑动找到【描述文件】然后安装即可,然后就可以进行抓包测试了,与安卓同理就不再重复。
本地资源映射
当发起请求的时候进行一个测试,在页面上显示已经超时的话可能就不会显示,或者显示错误信息,那么在有本地资源的情况下可以来使用本地资源进行映射,同时在使用断点对响应数据进行修改,如果有超时的设置则会出现错误,就可以使用本地资源映射出来。
使用Charles进行抓取;如下:
下面来使用本地资源进行映射,(可以保存它的一份响应数据进行修改)
对保存的响应数据自行修改,待做本地资源映射使用;
以上就是本地资源的一个映射,那么这个接口其实很常见,请求多少页需要多少条数据信息,下面来进行一个接口调试:
Charles 接口调试
可以看到这个接口中的两个参数PageNum和PageSize,很容易就知道请求第一页的10条数据内容,那么可以通过对这个参数进行修改,可以点击这个 "圆珠笔" 进行调试:
点击右下方的【Execute】执行按钮:
这个功能也是非常常用和常见的,那本篇目的内容已然接近尾声了,与之前的Fiddler抓包工具相看的话基础功能都是差不多的,对于两者在PC和移动设备的配置也都差不多,如果感兴趣的可以深入学习它里面的其他功能,用它来分析和做软件测试,也是有利于自身能力的提升的,本篇到此结束,感谢大家的支持和关注!!!
附上:【Fiddler抓包篇】