hairyhood

最近程序出现个问题,正常测试无法复现,只能选择在弱网下进行测试复现;

一、为什么要进行弱网测试?
     按照移动特性,各种网络连接协议不同,导致通信的信号不同,速率也不同,影响应用的加载时间、可用性、稳定性

二、什么样的网络属于弱网?
     低于2g速率的时候都属于弱网也可以将3g划分为弱网 一般wifi不纳入弱网测试范围。
三、如何进行弱网测试?
1.SIM卡的网络切换
     手机-设置-移动网络设置-网络类型选择
     3G卡有3种模式:1.只使用2G网络 2.只使用3G网络 3.3G网络优先
      根据手机型号的不同,上面的选项可以会稍有变化。
      因为电信、移动、联通的速率各不相同所以可以取速率最低的值进行测试。
2. 使用虚拟机模拟网络速率
3. 使用Fiddler来进行网络代理

fiddler模拟限速的原理

fiddler是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑。Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果。

他提供了一个功能,让我们模拟低速网路环境…启用方法如下:

Rules → Performances → Simulate Modem Speeds :模拟调制解调器的速度

步骤:

1.设置端口连接

Tools→ options→

 

  •  设置端口
  • allow remote computers to connect “允许远程计算机连接”为设置的代理可以连接到fiddle上,必须勾选

2.重启fiddle;

3.手动设置设置上行,下行速率,模拟网路速度的原理,每上传/下载1KB 要delay 多久…

 

 

网络取值的算法就是 1000/下载速度 = 需要delay的时间(毫秒),比如50kb/s  需要delay200毫秒来接收数据。

查找代码如下:

if (m_SimulateModem) {

            //Delay sends by 300ms per KB uploaded. //每延迟300ms发送1kb的数据,也就是每1s发送3kb的数据

           oSession["request-trickle-delay"] = 300

            //Delay receives by 150ms per KB downloaded.

           oSession["response-trickle-delay"] = 150//每延迟150ms下行1kb的数据

        }

 

4.设置模拟调制解调器的速度:

 

 

5.设置手机代理

手机代理设置“ip地址为本机的ip,端口号为之前设置的端口号(确保端口号不被占用)”

 

 6.设置完成后,清空原有的log,并使用你的app进行弱网条件下的操作,

分类:

技术点:

相关文章: