一、Charles 简介
Charles 是一款抓包软件,更专业,可以抓取电脑上所有软件发的包。
抓包原理:charles 自动创建了一个代理,发送数据都要经过代理,同时把所有
路过的数据全部展示出来。
Charles激活码计算器:https://www.zzzmode.com/mytools/charles/
二、Charles 的安装配置



三、HTTPS证书安装
抓包原理:自动创建了一个代理,所有的数据都要经过代理,把路过的数据都展示出来。

HTTPS是加了密的,所以不给它添加数字证书的话,抓住的全部包都是锁着的,都是看不到具体内容的。但是访问HTTP协议的网站:http://www.chinesemooc.org可以看到:

HTTPS抓不到但是HTTP协议的网址抓得到,我们需要给HTTPS协议的网址设置一个数字证书。点击帮助=》SSL代理=》安装Charles root证书。

选择安装证书=》当前用户=》将所有的证书都放入下列存储=》受信任的根证书颁发机构。




然后点击代理=》SSL代理设置=》添加
点击Include区域的Add,在Host区域输入*.>>OK。
点击Include区域的Add,在Host区域输入,在Port区域输入443>>OK。




四、Charles 抓手机的包

前提条件:
1、手机必须与安装 charles 的电脑处于同一局域网下才可以抓到手机的包
2、必须给手机 wifi 设置代理信息
3、手机必须安装证书




五、charles 过滤
由于 Charles 抓的包太多,这时候我们需要过滤找到我们需要的包。



**注意!!!**记录设置用完需要关闭掉,不然后面练习会发现 charles
抓不到包,操作如下(可以通过弱网设置,测试项目在不同弱网下的
情况):

六、charles 弱网测试




七、Mock/挡板
1.概念
将测试的多种场景,模拟外部系统返回
2.实现 mock 的三种方式
断点
( 做临时性的修改,请求与返回都可以修改)
实验地址:https://www.jianshu.com/techareas/backend



修改断点返回参数

本地映射
将请求的返回重定向到本地文件中。永久性修改,并且有新修改值时,修改本地
文件即可,不需要修改设置。



本地映射的取消

远程映射
将请求的域名重定向到一个新的网络地址。


八、Fiddler
如何设置抓取https请求
Tools–》Options–》HTTPS,勾选CaptureHTTPS CONNECTs、Decrypt HTTPS traffic 、ignore server certificate errors(unsafe),点击OK,会弹出证书直接确认即可。

设置抓取手机app的包
前提条件:计算机与手机需要在同一个网络中
(1)配置移动端证书检查,Tools---->Connections---->勾选Allow remote computers to connect:

2)打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。
在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“连接”按钮。

设置断点,篡改和伪造数据
fiddler作为代理服务器,可被篡改的两个点:before requests和after responses

有两种方法设置断点:
1).fiddler菜单栏->rules->automatic Breakpoints->选择断点方式,这种方式下设定的断点会对之后的所有HTTP请求有效。
有两个断点位置:
a. before response。也就是发送请求之后,但是Fiddler代理中转之前,这时可以修改请求的数据。
b.after response。也就是服务器响应之后,但是在Fiddler将响应中转给客户端之前。这时可以修改响应的结果。
2).命令行下输入。Bpafter xxx或者bpv,bpu,bpm等设置断点。这种断点只针对特定类型的请求
4、弱网络测试(限制网速)
1)、Fiddler—》Rules—》Customize Rules ,
2)、在CustomRules.js里搜索找到:m_SimulateModem,
3)、在如下脚本中修改上传及下载延时毫秒数即可:
if (m_SimulateModem) {// Delay sends by 300ms per KB uploaded.oSession["request-trickle-delay"] = "300"; // Delay receives by 150ms per KB downloaded.oSession["response-trickle-delay"] = "150"; }
5、AutoResponder: 文件代理,可以把请求的资源用本地文件代理掉,方便调试线上bug文件,具体如下:
线上bug定位Hotfix bug:(只指定某一个连接文件到指定的IP或者服务器)。
比如:发现线上某个文件出现bug时,现在要将此文件映射到本地环境(或者是非线上开发测试环境),做代码的修改之后快速的查看效果是否与预期一致,是否生效,是否能修复bug。
1、将请求拖入到AutoResponder中,可以看到最下方有一个EXAT,叫精准匹配(也支持正则表达式模糊匹配);
2、在下方可以选择本地(非线上测试开发环境)文件路径来进行测试查看结果,当然也可以选择其他的一些响应,比如200,500等状态。
6、Composer: 前后端接口连调,可以用来伪造请求–需要后端接口:修改里面的数据参数,伪造请求,再访问查看效果。
请求的伪造:可以伪造Cookie,进行登录
前后端连调:Composer -> 选择请求方式 GET -> copy 地址 参数->excuete
然后查看返回数据参数。
POST参数一般要放到RequestBody中。

















