Charles-模拟弱网环境

在做弱网测试时,经常需要模拟各种网络环境,Charles恰好也提供了网络限制的功能,我们可以在"Proxy->Throttle Settings"路径下找到它,如下图所示。

"Throttle Settings"提供了一个总开关,勾选"Enable Throttling"即开启网络限制功能。在其下方,可以添加我们想要限制网络的hosts,并勾选"Only for selected hosts",来实现仅仅限制该hosts的网络。

Charles提供了很多的预设网络条件,可以在"Throttle preset"找到它们,包括56kbps-100Mbps、3G、4G等。这些预设网络条件影响的其实就是下方的参数——Bandwidth、Utilisation、Round-trip latency、MTU。此外,还有Reliability、Stability、Unstable quality range供我们更灵活地限制网络。

在配置完网络参数后,为了方便我们后续反复使用,点击"Export"按钮可以将参数导出成xml文件,再次Import该文件就能立刻还原配置的参数了。

下表是对网络参数的解释:

参数 解释
Bandwidth

带宽定义了一段时间内可以传输的最大数据量,它是以千位每秒为单位指定的。可以为上传和下载链接指定不同的带宽限制。

Utilisation |

利用率是一次可以使用的总带宽的百分比。它只是作为可用带宽的比例因子。对于目前大多数网络环境来说,使用率总是100%。

Round-trip latency |

往返延迟,度量客户端和远程服务器之间的第一次往返通信的延迟(以毫秒为单位)。每个请求从客户端到服务器只应用一次。

MTU |

MTU是最大传输单元,是任何传输中TCP包的最大大小。指定MTU不会改变可用带宽,但Charles会以MTU大小的块来分配带宽,从而在每次传输中产生数据包碎片。

Reliability |

可靠性是衡量连接完全失败的可能性的一个指标。这对于模拟不可靠的网络条件很有用。可靠性被指定为成功传输10KiB消息的可能性,因此50%的值意味着所有10KiB传输的一半将成功。较大消息或较小消息或多或少可能失败,因此20KiB传输的成功率仅为25%,5KiB传输的成功率约为70%。

Stability |

稳定性是衡量连接“不稳定”并因此降低质量的可能性的指标。这对于模拟周期性连接质量较差的网络(如移动网络)非常有用。如果连接不稳定,则连接的质量将随机地落在不稳定的质量范围内。

Unstable quality range |

不稳定的质量范围,配合Stability使用。