Charles Throttle 模拟慢速功能使用

1,242 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情

Charles Throttle 模拟慢速功能使用

前言

Holle!

在日常生活中,上网时经常会遇到网络突然掉线、网络延迟变高、网络请求失败、加载时间长等情况,那么在程序员开发过程中必然就要去优化这些网络不稳定的情况,那么,开发写完代码后,怎么样验证这个功能点是否正常,下面我说一下平时工作中我是怎么样使用Charles这个工具去模拟网络不稳定情况,去验证开发的功能点的。

Charles Throttle功能

charles Throttle功能是测试通过配置Throttle设置来模拟各种弱网情况,说白了就是当网络请求经过charles时,charles控制流量数据的大小、快慢、稳定性再发送给服务端,当然啦,假设实际带宽只有4m的网速,就算throttle preset设置了千兆网络,网速还是最高位4m,并不能通过这样的设置去提高网速。

先看Throttle 设置界面:

image.png

  • Throttle preset=系统预设置

下图,Throttle preset按翻译来说就是气阀门/油门,在计算机中说的是预设置,改选项时可以通过已经预设置好的常见网络,如2/3/4G网络,选中就可以直接模拟该网络的配置,没有特别要求情况下,这种是个很好模拟弱网的快捷方式。

image.png

  • Bandwidth(Kbps)=带宽(千位/秒)

由该值控制网络数据包的上传和下载速度

download=下载速度,指是从网络上下载下来的数据速度快慢

upload=上传速度,指是把数据上传到服务端上的速度快慢

使用这个设置就可以模拟很多情况,例如,请求服务器时很快,但服务器返回的数据慢,亦或者反过来也可以。

我是经常使用这种方式去模拟手游第三方支付时掉单的情况,掉单:玩家已经付款给钱了,钱也已经到了第三方平台,但是我们的服务器还没有收到这边订单支付成功的回调,也就不会给到玩家发货商品。

  • Utilisation(%)=可用率(%)

带宽可用率,大部分modern是100%,公式:网络带宽利用率=(每秒收到字节数+发送字节数)/带宽

举个例子:

一个最大速率是100Mb的交换机端口,进来的流量是20Mbps,出去的流量是10Mbps。网络带宽利用率是多少?

(20+10)Mb/100Mb=30%

也就是一条马路双向10排,每个方向各5排,有几排车走利用率就是百分之几

  • Round-trip latency (ms)=往返延迟(Ms)

延迟,就是网络请求发起时,延迟多长时间去请求,很多情况下,玩游戏的时候说的网络卡,延迟高,就是这个延迟啦,可以用这个选项去设置延迟时间。例如设置10m,则发起请求时,延迟10秒,服务端才会接受到信息

  • MTU (bytes)最大传输单位(字节)

即TCP包的最大size,可以通过该选项更真实模拟TCP层,模拟每次传输的分包情况。

  • Reliability(%)=可靠性(%)

指连接的可靠性,用于模拟网络不稳定。这里设置的也是一个百分比值,我是很少通过这个字段去模拟弱网情况了。

  • Stability (%)=稳定性(%)

连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠,也无法知道

设置就是从0%~100%有多少概率是能成功发送请求。由于是随机数,测试时只能概率出现想要的结果,设置50%就是一半一半能发送请求成功的数据

开启模拟慢速功能

这个就简单了,菜单栏Proxy中选择,开启Throttle功能,并根据所需要求配置好,勾选启动即可,启动后,可以在主界面上方这个“小乌龟”显示绿色,也可以直接点击这个小乌龟开关功能。

image.png

总结

使用charles Throttle功能的话,只要配置好限制条件,可以模拟很多的弱网情况,我是在工作中经常用到,建议大家了解一下,希望能帮到你。