• 1024程序员节特供:APP弱网络测试利器(QNET)实战


    背景介绍

    QNET:腾讯WeTest的APP弱网络测试专家

    背景一

    弱网络测试为专项测试之一,最近软件质量标准过程管理中也添加了测试要求:

    生命周期弱网络测试
    运营期

    必选

    试运营期必选
    研发期/
    低维期/
    Demo/

    要求客户端的核心场景必须有断线重连机制,并在网络抖动、延时、丢包的网络场景下,需要满足:

    一、不能出现以下情况:

    1.收支不等、客户端卡死/奔溃等异常

    2.核心功能不能有导致软件正常进行的问题

    3.不能有损害用户利益或者被用户额外获利的机会

    4.合理的重连机制,避免每次重连都返回到登录界面

    二、对延时情况有对应的提示

    以及测试报告中必须体现弱网络测试是否通过

    背景二

    最近的一个UI体验优化的案子中体现加载中和加载失败的场景

    1.骨架图由Web实现

    2.优先获取XX数据,并不能获取默认显示“XX”,点击跳转到XX选择页

    3.加载成功后再显示新手引导等提示

    综上,借助一款有利的弱网络测试工具,势在必行。

    弱网络测试工具对比

    目前在测试移动设备上进行弱网络专项测试的方案主要有两种

    1. 通过Android设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET-Simulator等。基本思路是在PC上装一个Fiddler网络抓包工具,然后再将Android设备的网络代理到PC上,通过在PC上的Fiddler在设置延时来进行弱网络模拟。

    2. 在专有服务器上构建弱网络Wi-Fi,移动设备连接该Wi-Fi进行弱网络测试,相关的技术方案有Facebook的ATC和腾讯的WeTest-WiFi。

    Fiddler:

    Network Emulator Toolkit:

    Facebook ATC

    以上两种方法都能够实现移动设备的弱网专项测试,也已经是比较成熟的方案,但都存在以下几点缺点

    • 需要额外的PC或者服务器,弱网环境构建成本高;
    • 需要安装、部署额外的工具,并且弱网络环境需要在PC上或者Web上进行配置,使用成本高;
    • 弱网络环境功能并不完善,比如Fiddler不支持丢包、抖动等弱网环境;

    为了更好的满足开发者对于弱网测试的需求,腾讯WeTest推出了一款针对移动应用的弱网测试工具QNET,解决了在Android设备上进行弱网络专项测试的痛点:

    1. 无需ROOT手机,无需连接数据线,以独立app的方式,为用户提供给快捷、可靠、功能完善的弱网络模拟服务。
    2. QNET还能提供TCP/UDP网络协议抓包功能,帮助开发和测试人员进行网络流量分析,而不需要ROOT手机,使用tcpdump进行抓包。

    QNET使用介绍

    1.下载:可以到应用市场或者腾讯wetest官网下载

    2.登录

    3.选择APP:次启动的时候需要对悬浮窗权限进行授权

    4.弱网络模板选择

    • 预设模板包含了常见的2G/3G/4G网络模板
    • 弱网测试中比较常用的100%丢包模板等
    • 预设模板不支持编辑,可以删除
    • 持用户根据自己的测试需求自定义弱网参数模板,有比较好的灵活性。

               

    4.悬浮窗

    • 左边:拖动控制位置
    • 中间:开始/停止
    • 右边:切换网络模板

    5.弱网参数

    • 上下行延时(Delay)
    • 上下行延时抖动(Jitter)
    • 上下行带宽(Bandwidth)
    • 上下行随机丢包(Random Packet Loss)
    • 上下行连续丢包(Continuous Packet Loss)
    • TCP/UDP协议控制(Protocol)

    7.网络抓包

    导出为Pcap文件,可以在PC上用Wireshark工具打开分析,目前支持TCP, UDP, DNS协议,如下图是一个抓包示例

    QNET测试实战

    通过选择丢包,模拟UI交互的异常,校验案子设计

         

    另外,我们也可以找一些其他的软件进行测试:

                     

    总结

    QNET 使用起来非常方便:

    • 环境部署简单:安装应用即可使用 
    • 参数配置灵活:支持自定义参数
    • 多种弱网参数支持:包括带宽、延时、随机/连续丢包等等
    • 支持网络协议抓包:无需 Root 手机即可抓取 UDP/TCP 协议请求包
  • 相关阅读:
    VC++6.0编译环境介绍
    (六)flask搭建博客系列之HTTPTokenAuth
    (五)flask搭建博客系列之LoginManager
    (四)flask搭建博客系列之FlaskForm
    (三)flask搭建博客系列之BootStrap
    (二)flask搭建博客系列之SQLAlchemy
    (一)flask搭建博客系列之环境项目搭建
    (十)python语法之图像处理
    (九)python语法之机器学习
    (八)python语法之Tkinter
  • 原文地址:https://www.cnblogs.com/haixianglan/p/13942900.html
Copyright © 2020-2023  润新知