使用 Charles 对 App 进行弱网测试,主要是通过其 网络节流(Throttling) 功能来模拟各种欠佳的网络条件。这能帮助我们观察 App 在这些情况下的表现,比如响应是否缓慢、是否会闪退或出现异常提示。
下面这个表格汇总了 Charles 弱网测试的主要步骤和关键点:
| 步骤 | 关键操作/说明 |
|---|---|
| 1. 前置配置 | 确保手机与电脑在同一局域网,并在手机网络设置中配置代理至电脑IP和Charles端口(默认8888)。 |
| 2. 启用弱网模拟 | 在 Charles 菜单栏选择 Proxy > Throttle Settings。勾选 "Enable Throttling" 以启用弱网模拟。 |
| 3. 选择或自定义网络环境 | 在 "Throttle preset" 下拉菜单中可选择预设网络类型(如3G),或通过 "Add Preset" 自定义。关键参数包括带宽(Bandwidth)、往返延迟(Round-trip latency)及可靠性(Reliability)等。 |
| 4. (可选) 指定生效域名 | 在 "Only for selected hosts" 区域可添加特定域名,使弱网设置仅对指定域名生效。 |
| 5. 开始测试 | 设置完成后点击OK,Charles 便会开始模拟弱网环境。此时在手机上进行App操作,即可观察其在弱网下的表现。 |
🛠️ 关键参数调整
理解 Charles 弱网设置中各项参数的含义,能帮助你更精准地模拟各种网络场景:
| 参数 | 含义与作用 |
|---|---|
| Bandwidth(带宽) | 决定上行(Upload)和下行(Download)的最大速率。速率设置得越低,网络速度就越慢。 |
| Utilisation(利用率) | 带宽的可用百分比,大多数情况下可以设置为100%。 |
| Round-trip latency(往返延迟) | 数据包从发送到接收的来回延迟时间(单位:毫秒)。设置越高,响应越慢。 |
| MTU(最大传输单元) | 指定TCP包的最大尺寸。设置此参数可以更真实地模拟TCP层每次传输的分包情况。 |
| Reliability(可靠性) | 指连接的可靠性,用于模拟网络不稳定的情况。 |
| Stability(稳定性) | 指连接的稳定性,它也会影响带宽的可用性,常用于模拟移动网络(因为移动网络连接通常不如Wi-Fi稳定)。 |
🔧 弱网测试实战技巧
-
预设与自定义结合:Charles 提供了一些预设的网络场景(如 3G),你可以直接选用。但如果需要模拟更特定的场景(例如极不稳定的 2G 网络),自定义参数(Add Preset) 会更灵活。
-
针对性测试:如果你只想测试某个特定服务器或接口在网络不佳时的表现,可以在 "Only for selected hosts" 中添加其域名或IP。这对于隔离问题、进行精准测试非常有帮助。
-
留意性能影响:请注意,启用 Charles 弱网模拟后,所有经过 Charles 代理的网络请求都会受到影响。同时,Charles 本身运行也会消耗一定的系统资源。
-
善用iOS开发者工具:如果你测试的是 iOS App,除了 Charles,还可以考虑使用 iOS 设备自带的 Network Link Conditioner 工具。它在 "设置" -> "开发者" 选项中(需要先连接 Xcode 激活开发者选项),同样可以模拟各种网络条件,有时更为便捷。
💎 一些参考网络参数
不同网络制式下,典型的上下行速率和延迟有所不同。以下是一些参考值(具体数值可能因运营商和地点而异),你在自定义弱网参数时可以借鉴:
| 网络类型 | 参考下行速率 | 参考上行速率 | 参考延迟 |
|---|---|---|---|
| 2G | 数十 kbps | 数十 kbps | 高 (数百毫秒) |
| 3G | 数百 kbps ~ 几 Mbps | 数十 kbps ~ 几百 kbps | 中 (近百毫秒) |
| 4G | 几 Mbps ~ 几十 Mbps | 几 Mbps ~ 几十 Mbps | 低 (数十毫秒) |