一,弱网测试的背景

  1,用户体验

    APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高,容易伤害用户体验

  2,非正常情况下,出现bug概率会增加

    在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为差,而服务在面试这种比较差的网络环境的健壮性不够,会导致出现一些意想不到的bug

  3,弱网测试关注的指标

    丢包:应该是最常见的问题,在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重新传。这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处理这些

    延时:延时也是很常见的问题,由于网络太差,产生了网络波动,导致数据包在传输的时候出现抖动,可能导致请求出现超时的现象,这个时候就需要给予相应的提示,或者是其他的处理方式

  4,工具

    fiddler----模拟网络延时场景

    Network Emulator Tookit  ----模拟网络丢包场景

  5,fiddler-模拟网络延时

    使用手机连接上fiddler后,需要在fiddler中打开如下图1:

    

Android 延申view 安卓延迟测试_Android 延申view

 

    接着会出现图2的一个配置文件。我们可以搜索 m_SimulateModem

    

Android 延申view 安卓延迟测试_Network_02

 

     这里300表示每300ms上传1kb

    这里150表示每150ms下载1kb

    如果我要延时的话,需要把这数字变大,如我改成

    

Android 延申view 安卓延迟测试_Android 延申view_03

 

  此时还需要进行如下图的设置才可以生效,表示启用网络设置

   

Android 延申view 安卓延迟测试_链路_04

 

   当我们在操作手机的时候,会发现网络很慢,一直加载中,但是会慢慢的出现数据,延迟造成

  

  6,丢包--Network Emulator Tookit 

    下载地址:链接:https://pan.baidu.com/s/1x7f3X7hhWBDayS74cdZ0OA 提取码:8gw5 

    安装步骤---一路下一步即可安装成功。安装成功打开如下图:可以在win上输入Network Emulator打开

    

Android 延申view 安卓延迟测试_链路_05

 

    操作步骤:

      1,在菜单栏Configuration-->new Filter 新增一个过滤器--->点击add---关闭

        

Android 延申view 安卓延迟测试_链路_06

 

         新增完成后当前页面会出现如图:

        

Android 延申view 安卓延迟测试_链路_07

 

       

      2,点击configuration-->new link 新增一条链路

        

Android 延申view 安卓延迟测试_丢包_08

 

         此时上下剪头的颜色是灰色的,没有生效,我们要让他生效,选中灰色箭头,鼠标右键出现如图:

        

Android 延申view 安卓延迟测试_Android 延申view_09

      3,新建链路选择Upstream设置上行网络和下行网络

        选中set Upstream出现如图:

          

Android 延申view 安卓延迟测试_链路_10

 

      说明一下这个面板的菜单栏:       

      Loss为设置丢包,

      Error为设置错包,

      Latency为设置网络延迟,

      BW&Queue为设置带宽,

      BG Traffic为设置边界网关流量,

      Disconnection为设置断开连接数,

       固定丢包:

      

Android 延申view 安卓延迟测试_Android 延申view_11

 

     我们再看set downstream---下行也就是下载

    

Android 延申view 安卓延迟测试_丢包_12

 

     

      4,设置完成后点击Action-->start

      点击这个可以生效,会显示电脑本地的网速

      5,通过ping命令我们可以看到真实的丢包数据,如图:  

      

Android 延申view 安卓延迟测试_链路_13

 

      6,我们在设置下延时--还在在下行/上行处设置。如图延迟80ms~150ms

      

Android 延申view 安卓延迟测试_链路_14

 

    

 

      7,在真实生产环境中的操作,可进行网络设置参考:

        

Android 延申view 安卓延迟测试_Android 延申view_15