fiddler&charles是较常用的抓包测试工具,其中有很多实用的功能,今天这里主要介绍下功能之一的弱网测试,这里主要介绍以下几点:
*弱网的速率
*弱网测试操作
*弱网测试重点
Q:在心里默默地问下自己为什么要做弱网测试?目的是什么?
A:因为有些场景下需要我们去关注程序运行的情况,如在地铁里,公交上,甚至是电梯,车库等等的场景在弱网下是否出现丢包、延迟的情况,若没有应对机制,会导致用户体验变差而流失。弱网其实也就是一种异常场景,主要的作用还是辅助我们检查产品的健壮性。
一、做弱网测试就是很有意义的事情!!!先看下和弱网相关的上下行速率,时间单位对应为毫秒,为每上传、下载 1KB 所需耗时,1KB=8kb,弱网的带宽/延迟/丢包率参考配置:
二、了解了参数配置,看下在实际工具中如何操作
1.1、fiddler中Rules->Customize Rules...->弹框(或在右边“Fiddler Script”中)中Find“delay或uploaded或m_SimulateModem”找到修改的代码端;
1.2、在fiddler中按照网络配置的参数进行修改上行下行延迟,修改好后点击保存;
1.3、在fiddler中保存后还需要启动,Rules->Performance->Simulate Modem Speeds
2.1在charles中,先去设定弱网情况 Proxy->Throttle Settings...
2.2在charles中,勾选启动,可以直接选择网络制式,也可以自定义上/下行带宽、丢包率等等(比较强大!),点击ok直接启动,和主页面乌龟icon状态是同步的,如果需要暂停的话,可以点击小乌龟的icon;
配置参数解析:
bandwidth —— 带宽,即上行、下行数据传输速度
utilisation —— 带宽可用率,大部分modern是100%
round-trip latency —— 第一个请求的时延,单位是ms。
MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。
Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。
Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。
三、弱网测试重点
弱网环境下几个经典问题:
1、丢包。丢包应该是最常见的问题。在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传。这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些。
2、延时。延时也是很常见的问题。由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动。可能导致请求出现超时的现象。这个时候就需要给予相应的提示,或者是其他的处理方式。
3、弱网下,页面加载过程,程序闪退。原因:webview超时处理未在UI线程。toast、关闭页面等操作需要在UI线程。
4、302跳转页面,达到内置超时阀值后,webview自动关闭。原因:业务有页面加载超时自动关闭的逻辑,超时机制未考虑302场景。
参考文章:https://blog.csdn.net/tomoya_chen/article/details/80991397