暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Charles 抓包工具

技术对话 2024-02-23
213

介绍Charlse抓包配置、弱网测试、Breakpoints与Rewrite功能

目标

  • 用charles分析前后端的问题

  • 用charles模拟弱网测试环境

  • 用charles的断点构建异常的测试场景

简介

Charles中文名叫青花瓷,它是一款基于HTTP协议的代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。

Charles 工作原理


前置步骤:

1、需要运行Charles并配置代理

2、在客户端上面需要配置代理

步骤

1、由客户端发送请求

2、Charles接收再发送给服务端

3、服务端返回请求结果给Charles

4、由Charles转发给客户端

Charles 能做什么

  • 支持HTTP及HTTPS代理

  • 支持流量控制

  • 支持接口并发请求

  • 支持重发网络请求

  • 支持断点调试等

Charles 组件


主导航栏


请求栏


Charles 抓包

Windows HTTP/HTTPS请求

第一步,在菜单栏勾选Proxy -> Windows Proxy,系统HTTP/HTTPS代理将会被自动设置为本地代理,默认端口8888,可在Proxy Settings中修改端口。


第二步,在菜单栏勾选Proxy -> SSL Proxying Settingss,勾选 Enable SSL Proxying

第三步,在菜单栏选择 Help -> SSL Proxying -> Install Charles Root Certificate,会自动导入 Charles Proxy CA 证书并打开 证书,点击 安装证书,证书导入到受信任的证书机构,完成后,即可抓取https请求。


iOS HTTP/HTTPS请求

在Windows上先打开Charles,确保iOS设备和Windows处于同一局域网内。

设置iOS HTTP代理,打开iOS设备对应WIFI设置,添加代理IP地址(Windows的局域网地址)和端口号(8888)。

Windows局域网地址可以在Charles中从菜单栏Help -> Local IP Address获取。

在iOS设备上访问数据链接,Charles 弹出 Access Control 确认对话框,选择Allow,可以开始抓取HTTP包。

在菜单栏选择 Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or a Remote Browser,弹出提示框。
根据上述提示,在iOS设备上使用Safari浏览器访问 http://chls.pro/ssl,Safari浏览器会自动下载证书并提示安装,根据提示一步一步安装好,证书会被添加到『设置 -> 通用 -> 描述文件』中。

进入『设置 -> 通用 -> 关于本机 -> 证书信任设置』,对上一步安装的Charles证书启用完全信任,完成后,即可抓取https请求。


Charles弱网测试

在菜单栏勾选Proxy -> Throttle Setting,勾选“Enable Throttling”,在“Throttle preset”中选择对应的网络类型,也可以手动调整保存自定义预设值。


各个指标的含义:
  • Only for selected hosts :表示仅选择的域名做弱网限制,如上图所示,只限制localhost:9999域名的请求,其他的请求不做限制;若不勾选,那么对所有的请求都进行限制;

  • Throttle preset :可以选择要模拟的网速,是Charles预设的网络设置 ,下拉选项由上到下,网速越来越好。

  • Bandwidth :带宽,即上行、下行数据传输速度

  • Utilisation :利用率是总带宽的百分比,

  • Round-trip latency :请求往返延迟,单位是ms。往返延迟测量客户端和远程服务器之间第一次往返通信的毫秒延迟。它用于客户端向服务器 和 服务器向客户端的每一次请求 。

  • MTU:最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。

  • Releability :指连接的可靠性,常说的丢包。可靠性是衡量连接完全失败的可能性。这是非常有用的模拟不可靠的网络条件。可靠性是指定为成功发射10kib消息的可能性。如何值为50%,意味着所有10kib传输一半会成功。较大的邮件或更小的消息或多或少都有可能失败,所以20kib传输将只有25%(1/2 * 1/2)的成功率和5kib传输成功率约70% (0.5开平方)。

  • Stability :连接稳定性常说的网络抖动。稳定性是衡量一个连接的可能性是不稳定的,因此降低了质量。这是非常有用的模拟网络,如移动网络,定期连接质量差。如果连接不稳定,则连接的质量会在不稳定的质量范围内随机下降。此质量值,然后应用作为另一个缩放因子的可用带宽。

  • Unstable quality range(不稳定质量范围):此处设置主要针对于Stability中设置中的范围

设置好各项数值,点击 Add Preset ,填写 Preset 的名称,点击OK ,即可保存自定义网络预设成功,之后就可以在Throttle preset 的下拉选项中找到自定义的网络设置。

修改请求与响应参数

Breakpoints

构造异常的测试场景,如修改请求参数,可通过 Breakpoints 来实现。

右键请求选择Breakpoints,再次发起请求,此时会自动跳转到Charles并显示该请求信息,点击 “Edit Request”,修改请求信息,点击“Execute”即可


Breakpoints不仅可以修改请求参数,还可以修改响应参数:

Rewrite

Breakpoints使用一次性修改请求与响应,如果打算一直保存被修改状态,可以通过Rewrite实现。

此外,Rewrite还可以:

  • 快速生成 4XX/5XX 错误场景

  • 保存创建的响应,以便以后可以重复使用

第一步,Tools -> Rewrite -> 勾选“Enable Rewrite”复选框


第二步:配置Rewrite Location,Add -> 点击 Add (Location) -> 将 URL 复制到“Host” 输入框 -> 按tab键自动填充 -> 端口设置为 443

第三步:配置请求或响应规则,如下以修改状态码为例:
本文通过分享Charles一些很多好用的功能,希望对您有所启发。

-- End --

点击下方的公众号入口,关注「技术对话」微信公众号,可查看历史文章,投稿请在公众号后台回复:投稿

文章转载自技术对话,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论