流量測試中的小經驗


坑:在項目后期短視頻APP某版本的做流量測試時發現流量消耗特別大。

一、Android App流量測試方法

1、讀取Android系統上的兩個文件內容

proc/uid_stat/{UID}/tcp_snd 
proc/uid_stat/{UID}/tcp_rcv 
參數釋義: 
{UID}是每個Android App在安裝時分配的唯一編號,用於識別該App。獲取UID的方法有: 
1) 方法一
①獲取當前App進程的PID 
ps | grep 包名 
②通過PID查找該App對應的UID 
cat /proc/{PID}/status 
2)方法二

cat /data/system/packages.list | grep 包名,注:需要root權限 
tcp_snd文件中的數據表示發送的數據累計大小,單位是字節(Byte); 
tcp_rcv文件中的數據表示接收的數據累計大小,單位是字節(Byte)。 
舉例說明如何獲取這個數據:

1)get App UID

2)獲取流量數據

2、Fiddler代理工具

1)在手機上設置代理

2)通過Fiddler代理工具可以看到手機上發出的請求和收到的響應,其中包含了每個請求和響應的流量大小

 

3、Wireshark工具分析

1)手機上抓包,具體操作詳見Android移動網絡如何抓取數據包》

2)使用Wireshark工具分析,下圖是查看單個請求和響應的數據量

 

4、自動化流量統計之哆啦A夢

1)打開哆啦A夢→性能監控→開始監控(若沒有設置被測App,則可以通過哆啦A夢中的應用管理進行設置);

2)設計動作對App進行相應的操作;

3)操作完成后停止監控,文件保存至/sdcard/DoraemonBox/PerformanceTest下。

哆啦A夢之流量監控原理是直接讀取Android系統上的兩個文件內容,如圖

 

二、流量測試注意事項

作為測試人員,越早發現問題越好,所以在產品需求、開發實現上就應該關注流量問題,以下是常見的節省流量方法。

產品需求上:

1)針對移動網絡給出相應的提示

比如在搜狗輸入法泛靈犀最新需求中,點擊詳情時會判斷當前用戶的網絡類型,若為移動網絡,則給出提示;點擊詳情跳轉后,當前頁面中的內容是視頻,若為移動網絡,點擊播放按鈕不直接播放,而是先給出提示;

2)不同的網絡類型給出相應的策略

比如搜狗輸入法熱詞接口,wifi下一天下發一次,移動網絡下7天下發一次,該接口包含統計數據的上傳、熱詞和擴展詞的下發、數據流通知等。通過判斷當前的網絡狀況,控制數據訪問的頻率。

開發實現上:

1)數據壓縮

減少傳輸的數據量是一個最基本的節省流量的方法,比如在搜狗輸入法emoji后下載中,下發給用戶的emoji就是經過壓縮后的。

2)數據緩存

比如在搜狗輸入法中觸發泛靈犀圖片后 ,會將這些圖片暫時緩存至sdcard的某個目錄下,等以后再使用相同關鍵詞觸發泛靈犀圖片時,就不再去拉取相關的數據,直接使用緩存中的數據。

3)不同數據格式的采用

作為接口數據返回,JSON格式通常比XML格式要小,在大數據傳輸上,protobuf格式比JSON格式要小。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM