在移動互聯網的大背景下,在這個流量還是比較廢錢的年代,流量測試是非常有必要的一項終端測試。Lisa最近利用空檔時間對android的流量測試進行的研究,目前做這塊的方法有很多,方法也在不斷的更新,比如andorid4.0自帶了一個“流量使用情況”,也有一些工具攜帶了流量統計的功能,但是lisa試用了下貌似不靠譜,目前最靠譜的方法是如下兩種方法:
【213青年的方法】tcpdump +wireshark相結合的方法
【普通青年的方法】讀取該APP對應的tcp_snd/tcp_svn文件的值
當然還有一種更好更省力的辦法,YY一下,就叫白富美方法吧:
【白富美方法】將以上兩種方法做成工具……(待續,做好了分享給大家)
流量測試可以給我們帶來什麼?
1. 可以讓我們很清楚的知道用戶在某種場景下使用我們的產品需要消耗多少流量。
2. 流量數據分析可以指導我們去做優化。
比如cgi的調用和參數設置是否合理,有些資源或者配置是否可以本地化?
3. 流量的優化可以帶來速度的優化
減少tcp數據包的個數,或者直接減少請求數都可以帶來速度的優化。
總的來說,就一點,就是幫助用戶省流量錢!!!
【方法一:213青年的方法】tcpdump +wireshark的方法
第一步:tcpdump 抓包
1. 默認安裝了adb以及java環境以及安裝了wireshark
2. 下載tcpdump :http://www.strazzere.com/android/tcpdump
3. 打開cmd,進入adb目錄,測試設備的連接
4. 把tcpdump拷貝的/data/local/tcpdump目錄 (此步需要獲取手機root權限)
此時我們可以看到root的標誌符號 #,表示當前已經是root狀態
利用adb shell在手機上創建目錄 /data/local/tcpdumpb並執行命令:
D:\adbtools是之前我下載的tcpdump存放的位置。
5. 修改tcpdump的權限
6. 執行抓包命令
adb shell data/local/tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
7. 抓的包在sdcard目錄下,導出包(adb pull /sdcard/capture.pcap )
第二步:wireshark統計流量
wireshark打開剛剛的抓包文件,使用filte做過濾,根據wireshark顯示過濾器的語法,假設APP對應的目標服務器的地址是(121.14.76.22)
Filter的語法:
“入流量” ip.src == 121.14.76.22
“出流量” ip.dst == 121.14.76.22
那麼怎麼統計這些過濾出來的包的大小呢?statistics下面有一個summary
我們要的數據就在這裏
我們要的入流量的數據就是紅框裏面的數值
【方法二普通青年的方法】看/proc/uid_stat/<uid>/下的tcp_rcv和tcp_snd文件
1. 什麼是uid
Adb shell進入手機之後,執行ps
Uid的值就是在63+10000=10063 ,即在要統計的APP後面的數據上加上10000.
2. Cat 這個文件即可,單位是byte.
lisa在同一個場景採集了這兩個方法的結果數據,相差很小。