一、產品介紹
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/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239452.html
標籤:其他
