1024程序员节特供:APP弱网络测试利器(QNET)实战
背景介绍
背景一
弱网络测试为专项测试之一,最近软件质量标准过程管理中也添加了测试要求:
生命周期 | 弱网络测试 |
运营期 | 必选 |
试运营期 | 必选 |
研发期 | / |
低维期 | / |
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设备上进行弱网络专项测试的痛点:
- 无需ROOT手机,无需连接数据线,以独立app的方式,为用户提供给快捷、可靠、功能完善的弱网络模拟服务。
- 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 协议请求包