弱网测试工具-QNET
目录
- 1、前言
- 2、简介
- 3、安装
- 4、测试步骤
- 4.1、配置弱网模板和参数
- 4.2、选择测试产品进行测试
- 5、adb指令执行
1、前言
目前在移动设备上进行弱网专项测试的方案主要有两种:
1、通过Android设备连接到PC上进行弱网络测试,比如Fiddler,Charles,NET-Simulator等。基本思路是在PC上装一个Fiddler网络抓包工具,然后再将Android设备的网络代理到PC上,通过在PC上的Fiddler设置延时来进行弱网络模拟。
2、在专有服务器上构建弱网络WiFi,移动设备连接该WiFi进行弱网络测试,相关的技术方案有Facebook的ATC和腾讯的WeTest-WiFi。
弱网测试的思路:
1、弱网功能测试:2G/3G/4G/5G、高延时、高丢包
2、无网状态测试:断网功能测试、本地数据存储
3、用户体验关注:响应时间、页面呈现、超时文案、超时重连、安全及大流量风险
4、网络切换测试:Wifi-2G/3G/4G/5G-无网多状态切换
用户体验关注点:
1、页面响应时间是否可以接受,关注包括热启动、冷启动时间、页面切换、前后台切换、首字时间,首屏时间等。
2、页面呈现是否完成一致。
3、超时文案是否符合定义,异常信息是否显示正常。
4、是否有超时重连。
5、安全角度:是否会发生DNS劫持、登陆IP更换频繁、单点登陆异常等。
6、大流量事件风险:是否会在弱网下进行更新Apk包、下载文件等大流量动作。
2、简介
QNET网络测试工具能够不借助PC或者服务器,搭建一套完善的弱网环境,进行弱网络模拟测试,只需在任一智能手机上安装QNET网络测试工具,即完成弱网络环境搭建工作,接下来根据需要选择不同场景进行测试即可;还提供了网络数据包抓包功能,便于进行网络数据问题的分析。
特性:
1、弱网搭建简单快捷。无需额外搭建弱网络环境,无需ROOT/越狱手机,无需连接数据线,只需要安装QNET App,一分钟搭建弱网络测试环境。
2、自动化弱网测试。QNET支持adb命令驱动,用户可以编写脚本,实现自动化弱网络测试,降低弱网测试成本,提高测试效率。
3、网络协议抓包。无需ROOT/越狱手机,无需第三方工具,支持TCP/UDP/ICMP协议网络抓包,导出pcap文件格式,支持Wireshark等工具查看。
4、真实的全球网络和弱网场景。覆盖国内所有省份、海外主流的国家地区的运营商实时网络数据,提供真实的地铁、电梯等弱网络场景。
3、安装
无需ROOT/越狱手机,无需连接数据线,以独立app的方式,为用户提供快捷、可靠、功能完善的弱网模拟服务。
根据手机操作系统,下载指定版本,安装即可。
官网地址:https://wetest.qq.com/product/qnet/
4、测试步骤
1、打开APP,进行登陆
2、授权登陆成功
4.1、配置弱网模板和参数
首先添加编辑弱网模板,提供不同的网络场景,并可根据测试要求对网络参数进行调整,弱网模板支持新增、删除、修改、查询操作。
新增弱网模板有两种方式:
1、页面右上角“新增”按钮,为自定义模板。
2、“网络场景”页面,每一项模板的“添加”按钮,设置不同场景的模板。
根据测试需要,组合填写对应的参数,之后保存即可。
如图所示:自定义模板
4.2、选择测试产品进行测试
工作台页面添加指定的弱网模板,之后选择全部应用或者一个应用,点击启动按钮开启弱网测试。
如开启网络抓包功能,当弱网测试结束后,将手机里自动生成的pcap格式文件导入到PC上,使用网络抓包工具Wireshark打开分析即可。
注:iOS版本仅支持全部应用
1、Android版本
如图所示:Android版本开启弱网测试
设置页面,已开启:网络抓包、控制悬浮窗、信息悬浮窗。
2、iOS版本
如图所示:iOS版本开启弱网测试
设置页面,已开启:网络抓包
注:iOS版本没有控制悬浮窗、信息悬浮窗功能。
5、adb指令执行
adb指令执行功能可以自动化的启用弱网,帮助用户可以接入进行自动化测试弱网。
使用前,将Android与PC用USB进行连接,并确保已连接上。
1、启动
首先执行命令启动QNET进程:
代码语言:javascript复制adb shell am start {--[类型] [key] [value]} com.tencent.qnet/.Component.AdbStartActivity
使用示例:针对微信进行UDP上行20ms延时抓包
代码语言:javascript复制adb shell am start --ei "dump_pcap" 1 --es "package_name" "com.tencent.mm" --ei "out_delay" 20 --ei "protocol" 2 com.tencent.qnet/.Component.AdbStartActivity
2、更新
更新弱网参数:
代码语言:javascript复制adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages {--[类型] [key] [value]} com.tencent.qnet
使用示例:更新参数进行TCP/UDP 100%丢包
代码语言:javascript复制adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages --es "command" "update" --ei "in_rate" 100 --ei "out_rate" 100 --ei "protocol" 3 com.tencent.qnet
3、结束
结束弱网并退出进程:
代码语言:javascript复制adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages {--[类型] [key] [value]} com.tencent.qnet
使用示例:结束弱网
代码语言:javascript复制adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages --es "command" "stop_service" com.tencent.qnet
4、参数传递方式
--[类型] [key] [value]
--ei:表示参数值为int
--es:表示参数值为string
5、详细参数列表