• 弱网测试探索


    一、背景

    随着网络技术的不断发展,Wi-Fi、4G甚至5G也已经开始普及,但是移动设备的网络环境复杂,易出现弱网环境,如骑手配送出入各种高楼之间、楼梯间、电梯、停车场、通勤地铁、高铁隧道、偏僻的景区、晚上wifi使用高峰期等,优化弱网体验始终是业务的重要诉求,也是一个很重要的测试方向。

     

    二、弱网定义

    弱网是个相对性的概念,3G时代2G算是弱网,4G时代3G也可以算是弱网。常用的衡量网络质量的指标有:

    • 带宽:带宽指的是单位时间内的数据传输量,带宽越大,单位时间传输的数据量越大,数据的传输速率越高。

    • 延时:报文从进入网络到最后离开网络所需要的时间,一般ping值越低,网速越快,延时越低;反之,延时过高将导致API数据迟迟不得返回,最终加长应用的页面加载时间,影响用户的使用体验。

    • 抖动:抖动和延时有相对密切的关系,但抖动主要指的是在网络上连续传输的数据包具有不同的延时,抖动过高将导致数据丢包率增加和网络阻塞严重。

    • 丢包:丢包指的是数据传输过程中,数据包的数据无法透过网络达到目的地,出现丢包是正常的现象,但如果丢包率过高,会严重数据的传输质量,造成数据的不完整。

    弱网测试就可以针对以上这些指标进行模拟。

    三、弱网测试的目的

    • 提高不同网络场景下的用户体验

    使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易损失用户体验。

    • 验证应用在不同网络场景下表现是否符合预期,会不会触发未知的系统bug

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

    具体地,弱网测试最重要的四个目的:

    1. 保证方案数据的一致性和准确性。例如:网络状况比较差时,不能发生方案内的数据丢失或者数据异常

    2. 保证界面显示的正确性。例如:加载方案时,页面的加载可以一直在刷加载动画, 但是白屏或者黑屏是不好的用户体验

    3. 保证请求不发生堆积,导致数据错乱。例如:弱网情况下,商家用户频繁触发充值,导致请求堆积,金额被扣但充值实际未到账,或被扣金额只有一笔,但实际充值到账多于预期的情况,涉及公司资损

    4. 保障异常网络状态下各类处理机制。例如:网络不稳定时,给与合理提示时的用户体验,对比无提示但页面显示异常时的用户体验

    四、弱网测试的关注点

    1. 用户体验:响应时间、页面呈现、超时文案、超时重连机制、安全及大流量风险

      1. 页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间、首屏时间等。

      2. 页面呈现是否完全一致。

      3. 超时文案是否符合定义,异常信息是否显示正常。

      4. 是否有超时重连。

      5. 安全角度:是否会发生DNS劫持、登陆IP更换频率、单点登录异常等。

      6. 大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

    2. 弱网测试:功能在高丢包高延时下的实现等

    3. 无网状态:断网功能、本地数据存储

    4. 网络切换:wifi-有线-无网及之间切换。包括:wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi等等

    五、如何进行弱网测试

    1. SIM卡的网络切换:3G、4G卡都可以设置关闭3G/4G,只走2G网络。

    2. 具体弱网场景测试,包括高楼之间、楼梯间、电梯、停车场、通勤地铁、高铁隧道、偏僻的景区、晚上wifi使用高峰期等。

    3. 使用虚拟机模拟网络速度,如:树莓派搭建的弱网测试仪。

    4. 使用软件进行网络代理,搭建不同的网络带宽、延时率、丢包率。

    六、弱网测试常用工具

    通过设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET,Clumsy,WANem等

    在专有服务器上构建弱网络WiFi,移动设备连接该WiFi进行弱网络测试,相关的技术方案有ATC、WANem等

    以独立 app 的方式,为用户提供弱网络模拟服务。比如QNET,在Android设备上直接安装使用

    工具名称

    描述

    优缺点

    使用链接

    Fiddler

    抓包工具,PC 端安装,作为代理服务器,设置延迟参数,模拟不同的网络情况

    只能模拟延迟,如丢包、带宽等等是无法支持的

    Fiddler

    Charles

    抓包工具,PC端安装,作为代理服务器,可以支持延迟、丢包、带宽等弱网配置

    弱网配置项只支持HTTP/HTTPS

    Charles

    NEWT

    微软早年推出的弱网测试工具,PC 端安装,作为代理服务器,支持延迟、丢包、带宽等弱网配置

    在win10上按照配置步骤配置后未生效,后续未再尝试

    NEWT

    Clumsy

    专门针对弱网测试的工具,PC 端安装,作为代理服务器,支持延迟、丢包、带宽等弱网配置

    对比的这几款软件中使用最简单的软件

    Clumsy

    ATC

    Facebook推出,需要部署在 Linux 系统上,移动端设备通过浏览器访问就可以切换不同的网络环境,还可以同时支持多台设备连接

    环境部署较为复杂

    ATC

    WANem

    广域网模拟器,支持从光盘启动,可以运行于虚拟机上,也可以直接刷到物理设备上

    虚拟机部署不支持上下行网络设置

    WANem

    QNET

    腾讯推出app,自动化弱网测试,支持adb命令驱动,用户可以编写脚本,实现自动化弱网测试,自带真实的全球网络和弱网场景

    仅适用于安卓

    QNET

    简单使用推荐使用Clumsy,环境部署简单,使用门槛低;要模拟完全真实环境推荐WANem,直接刷到交换机上;安卓app推荐使用QNET

  • 相关阅读:
    贪心算法之过河问题
    抽奖动画 - 鲤鱼跳龙门
    三、mysqld程序的运行原理及数据库结构
    免费的秘密:免费,不是真的免费,是看起来像免费……
    实例化Servlet类[com.gowork.servlet.helloservlet]异常【BUG已解决】
    【深度学习】用Pytorch完成MNIST手写数字数据集的训练和测试
    java线程简介
    电脑便签功能在哪里找?电脑桌面便签怎么添加?
    【开发】微服务整合Sentinel
    Flet教程之 11 Row组件在水平数组中显示其子项的控件 基础入门(教程含源码)
  • 原文地址:https://blog.csdn.net/qq_34252068/article/details/126512752