QNET手机弱网测试

时间:2024-03-10 10:40:07

一、产品介绍

1、背景

为什么要进行网络测试?

(1)验证应用/游戏在不同网络场景下表现是否符合预期,会不会触发未知的系统bug;

(2)提高不同网络场景下的用户体验;

(3)测试公用组件/SDK在不同网络状态下的稳定性。

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

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

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

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

(1)需要额外的PC或者服务器,弱网环境构建成本高;

(2)需要安装、部署额外的工具,并且弱网络环境需要在PC上或者Web上进行配置,使用成本高;

(3)弱网络环境功能并不完善,比如Fiddler不支持丢包、抖动等弱网环境。 

2、QNET介绍

  QNET网络测试工具能够不借助PC或者服务器,搭建一套完善的弱网环境,进行弱网络模拟测试,只需在任一智能手机上安装QNET网络测试工具,即完成弱网络环境搭建工作,接下来根据需要选择不同场 景进行测试即可;除此之外,还提供了网络数据包抓包功能,便于进行网络数据问题的分析。

二、工具使用介绍

1、登录与注销

(1)按钮登录

  点击应用图标启动APP后,第一次打开会进入到登录界面:

  

    点击【QQ登录】按钮,如果本地已安装QQ或者TIM,会直接拉起应用进行登录确认,如果没有会弹出二维码页面扫码登录。

(2)自动登录

  登录之后会记录此次登录,之后七天内登录不用再进行登录确认。

(3)注销登录

  登录进入APP功能页面后,如果要退出登录或者切换登录用户,下方切换到【设置】切页,点击【注销】按钮即注销登录,回到登录页面:

  

 2、弱网模板的增删改查

(1)新增弱网模板

  增加弱网模板的入口有两个,第一个入口在【工作台】切页和【网络场景】切页右上角的【新增】按钮,由用户选择参数增加模板;第二个入口在【网络场景】切页中每一项推荐模板的右下角【添加】按 钮,这里提供系统推荐的模板,点击按钮后【编辑】-【新增】:

  

   点击入口按钮后,会跳转到【模板编辑】页面,设置一个对应的【模板名称】,选择【模板类型】,会弹出两种可供选择的类型,【场景模板】和【自定义模板】。 【场景模板】:提供了网络选择(客户端所处地区、服务器所处地区、运营商类型、网络类型)、场景 选择(电梯、地铁、高铁、视频网络标准、语音网络标准等),最后填写对应的【模板描述】,点击页 面右上角【保存】按钮。 

  

   【自定义模板】:提供了多种弱网参数,可以根据测试需要,组合填写对应的参数,最后点击右上角 【保存】。关于参数的详细介绍参见下节【弱网功能介绍】。

(2)删除弱网模板

  在【工作台】切页,向左滑动要删除的模板,出现【删除】按钮,点击按钮进行删除:

  

 (3)更新弱网模板

  在【工作台】切页上,点击要更新模板的右侧文字,进入编辑页面更新模板

  

(4)查找弱网模板

   在【工作台】切页上,在【搜索框】中输入模板名称关键字,会在下面排列出搜索结果:

  

 3、弱网功能的开启与关闭

(1)开启弱网功能

  在【工作台】切页,选择【启动栏】左侧,选择【全部应用】或者一个应用;接着选择一个模板;最后 点击【启动】按钮开启弱网:

  

  第一次开启时会弹出请求【悬浮窗权限】,具体操作为弹出【悬浮窗权限管理】-【QNET】,勾选允许 悬浮窗功能即可(不同系统页面可能有差异,下图只做参考):

   

  悬浮窗权限打开后再次点击启动,第一次运行时会弹出请求【VPN权限】,点击【确定】后QNET启动 成功:

  

(2)关闭弱网功能

  测试完成后,回到【QNET】-【工作台】切页,点击【停止】按钮关闭弱网功能:

   

(3)辅助功能

  在【设置】切页中包含了三个辅助功能:

    ①网络抓包:勾选后再启动弱网时生效,结束弱网后保存到对应文件路径;

       ②控制悬浮窗:包含三个按钮,第一个【QNet图标】按钮双击后会回到QNET应用中(部分厂商手机可 能不支持);第二个【暂停/继续】按钮点击后会切换到正常网络,继续后会回到当前弱网模板继续执 行;第三个【扩展/收缩】按钮点击后会展示所有的模板,方便用户切换模板;

     ③信息悬浮窗:展示当前弱网类型、网络延时ping值、当前弱网生效状态和参数内容。

   

4、QA

(1)部分系统双击

  【控制悬浮窗】-【QNet图标】按钮不会回到QNET应用中? 权限问题,需要打开【QET】应用权限中的后台弹出界面权限。

三、弱网功能详细介绍

1、自定义模板参数介绍

(1)网络模板

  单位kbps,限制当前网络上下行最大的带宽容量,例如针对腾讯视频设置1024kbps限速后,下载速度 只能达到128KB/s左右:

(2)网络延时

  单位ms,当前网络的上下行延时约等于设置值,设置延时100ms、200ms、300ms切换的网络数据包 波形图:

  

(3)延时抖动

  对每个数据包以设置的概率进行抖动选择,延时范围在0~抖动值之间随机产生:

  

(4)随机丢包

  按设置的概率对每个包进行丢包:

  

(5)周期弱网

  按照放行时长、弱网时长设置交替切换,根据弱网类型进行弱网。 【完全丢包】:处于弱网时长的数据包直接丢包,对应网络数据包到达时间波形图:   

  【Burst】:模拟路由或者底层硬件在判断当前网络连接不通时保存数据包,在网络通畅后爆发式的将 数据包推送出去,对应网络数据包到达时间波形图:

(6)协议控制

  支持对不同协议的弱网控制,协议类型包括TCP\UDP\ICMP\DNS;

(7)IP控制

  可以针对IP进行弱网控制,多个IP以|分割。

2、场景模板介绍

(1)网络选择

  提供真实的省市间网络传递的数据参数、运营商数据、网络类型数据;

(2)场景选择

  提供多个真实测量不同场景下的网络波形,以【场景模板】-【WIFI穿墙】为例,对应网络数据包到达时间波形图:

 

 四、ADB指令执行介绍

1、介绍

  ADB指令执行功能可以自动化的启用弱网,帮助用户可以接入进行自动化测试弱网。功能包括adb命令 行发送指令启动弱网、停止弱网、更新弱网模板等功能。

2、启动弱网

  首先执行命令启动QNET进程: adb shell am start {--[类型] [key] [value]} com.tencent.qnet/.Component.AdbStartActivity

  使用示例:针对微信进行UDP上行50ms延时抓包 adb shell am start --ei "dump_pcap" 1 --es "package_name" "com.tencent.mm" --ei "out_delay" 50 --ei "protocol" 2 com.tencent.qnet/.Component.AdbStartActivity

3、更新弱网模板

  更新弱网参数: adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages {--[类型] [key] [value]} com.tencent.qnet

  使用示例:更新参数进行TCP/UDP 100%丢包 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

4、结束弱网

  结束弱网并退出进程: adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages {--[类型] [key] [value]} com.tencent.qnet

  使用示例:结束弱网 adb shell am broadcast -a "qnet.boradcast.drive" --include-stopped-packages --es "command" "stop_service" com.tencent.qnet

5、参数传递方式

  --[类型] [key] [value] --ei:表示参数值为int --es:表示参数值为string

6、详细参数列表

   

 

  

7、注意

  QNET进程不能被清理,否则弱网会被关闭; 更新弱网参数是全量更新,参数中没有设置的参数会被直接设置为默认值。

 

官网:https://wetest.qq.com/product/qnet/