charles功能
charles工作原理
- 截获真实客户端的HTTPS请求,伪装客户端向真实服务端发送HTTPS请求
- 接受真实服务器响应,用Charles自己的证书伪装服务端向真实客户端发送数据内容
前置条件
- charles代理配置
- 端代理配置
- 端安装SSL证书
- Charles SSL代理配置
charles代理配置
- 进入charles,点击Proxy -> Proxy Setting -> Proxies,输入Port代理端口号(默认8888),点击OK。
端的代理设置
- 获取Charles的IP信息:Help -> Local IP Address -> IP Address下获取Charles的IP
windows端的代理配置:Chrome 浏览器 -> 进入设置页面 -> 顶部的搜索框中输入“代理” -> 点击“打开您计算机的代理设置” -> 开启【使用代理服务器】开关 -> “地址”栏中输入 Charles的IP,在“端口”栏中输入8888; -> 点击保存
mac端代理配置:系统偏好设置 -> 网络 -> 高级 -> 代理 -> 勾选web代理 -> 输入web代理服务器下的charles的ip和端口号;当MacOS客户端与运行Charles软件工具的电脑是同一台电脑时,可以通过快捷代理设置方式进行设置,打开Charles工具后,选择“Proxy”菜单中的“macOS Proxy”选项;
ios端的代理配置:设置 -> 无线局域网 -> 点击当前已连接无线网名称(确保手机网络和Charles代理的网络在同一个局域网中,最好是连接同一个网络) -> 在HTTP代理的配置代理中选择“手动” -> 输入服务器ip地址和端口号 -> 点击存储;
Android端代理配置同ios差不多;客户端首次连接 ,Charles会提示是否允许其连接,点击Allow
端安装SSL证书
在没有安装好SSL证书之前,抓取的HTTPS报文信息都乱码
Windows 证书配置
- 打开charles,选择“help”->“SSL Proxying”->“Install Charles Root Certificate”
- 在打开的证书框中,点击“安装证书”,选择“本地计算机”,点击“下一步”
- 选择“将所有证书都存放下列存储”,再点击“浏览”
- 选择“受信任的根证书颁发机构”,点击“确定”->“下一步”->“完成”
MacOS 证书配置
打开Charles,选择“Help”->“SSL Proxy”->“Install Charles Root Certificate” ->点击证书选择始终信任;
IOS 证书配置
在电脑上运行Charles, 且IOS手机设置好代理,在手机浏览器中地址栏输入:http://charlesproxy.com/getssl,在设置中点击“已下载描述文件”,点击右上角“安装”;
返回到“通用”页面,选择“关于本机”,点击“证书信任设置”,启用Charles Proxy CA证书并确认;
android安装SSL证书
Charles SSL代理配置
- 在Charles窗口中点击菜单“proxy”->“SSL proxying setting”
- 在打开的设置窗口中勾选“Enable SSL Proxying”,点击“OK”
Charles主要功能
使用Charles来分析前后端问题
使用Charles模拟弱网测试环境
- 在Charles窗口中点击菜单“Proxy”->“Throttle Setting”
- 在打开的设置窗口中勾选“Enable Throttling”
- 在“Throttle preset”下拉框中选择对应的网络类型,点击“OK”
使用Charles断点构建异常的测试场景
- 右击接口链接,选择“Breakpoints”
- 在浏览器刷新对应接口的页面,此时会自动跳转到Charles并显示出接口请求信息
- 点击“Edit Request”,修改请求的信息,点击“Execute”
- 点击“Edit Response”
- 在数据格式栏中选择合适的显示格式,比如“Json”
- 修改对应的数据,点击“Execute”
- 回到浏览器查看数据应该为修改之后的Response的信息
- 支持流量控制
- 支持接口并发请求
- 支持重发网络请求,方便后端调试
- 支持修改网络请求参数
- 支持网络请求的截获并动态修改