APP——流量測試——adb命令簡單測試


在不知道包名的情況下,在手機里先打開要測試的APP,執行如下命令:adb    shell    dumpsys    window    w    |findstr   \/     |findstr    name=;獲取包名

 

 

C:\Users\del>adb shell dumpsys window w |findstr \/ |findstr name=
mSurface=Surface(name=com.wawj.app.t/com.wawj.app.t.ui.MainActivity)

C:\Users\del>

 

包名:com.wawj.app.t

============================================================================================================================

 

查詢進程:adb shell ps -A |findstr com.wawj.app.t

 

 

C:\Users\del>adb shell ps -A |findstr com.wawj.app.t
u0_a145 6724 725 3174200 195496 0 0 R com.wawj.app.t
u0_a145 6919 725 2442904 43432 0 0 S com.wawj.app.t:pushcore

C:\Users\del>

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

執行命令:adb shell ps -Aa                      ——查看抬頭

 

 

C:\Users\del>adb shell ps -Aa
USER PID PPID VSZ RSS WCHAN ADDR S NAME

C:\Users\del>

---------------------------------------------------------------------------------------------------------------------------------------------------------------

通過上面的操作獲取進程號即獲取PID:6724

 

下面再通過PID獲取UID,執行如下命令:

adb   shell

cd  /proc/6724

cat  status;

----------------------------------------------

C:\Users\del>adb shell
hwedison:/ $ cd /proc/6724
cd /proc/6724
hwedison:/proc/6724 $ cat status
cat status
Name: com.wawj.app.t
State: S (sleeping)
Tgid: 6724
Ngid: 0
Pid: 6724
PPid: 725
TracerPid: 0
Uid: 10145 10145 10145 10145
Gid: 10145 10145 10145 10145
FDSize: 512
Groups: 3001 3002 3003 9997 20145 50145
VmPeak: 3522984 kB
VmSize: 3060492 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 489140 kB
VmRSS: 170988 kB
VmData: 537636 kB
VmStk: 8196 kB
VmExe: 20 kB
VmLib: 163300 kB
VmPTE: 2092 kB
VmPMD: 32 kB
VmSwap: 153696 kB
Threads: 131
SigQ: 2/14487
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001204
SigIgn: 0000000000000000
SigCgt: 20000006400094f8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
CapAmb: 0000000000000000
Seccomp: 2
Cpus_allowed: ff
Cpus_allowed_list: 0-7
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 999245
nonvoluntary_ctxt_switches: 692834
hwedison:/proc/6724 $

-------------------------------------------------------------

 

 

 

 

獲得UID:Uid:    10145 

==============================================================================

因個人手機沒有root獲取不到流量情況,下面提供示例參考:

===================================================================================

流量測試的原理:在安卓手機上,應用的網絡流量數據都會保存在系統的/proc/uid_stat/$UID/tcp_rcv

                             和/proc/uid_stat/$UID/tcp_snd兩個文件夾里面;

一個是請求耗費的流量,一個是接受的數據流量,這兩個數據是由系統記錄的,在我們啟動某個軟件的時候,

系統會根據這個應用所占用的進程號pid在根目錄下創建一個以這個命名的文件夾,在文件夾的下面有存有UID的文件。

 

===============================================================================================

場景:

APP性能場景典型的無非三種

首次啟動,非首次啟動(比如后台運行狀態切換),后台運行

 

1、使用安卓系統自身的TCP流量計數人工計算。

場景舉例: 測試某APP首次啟動到徹底加載完成的流量消耗,被測包名為com.newsplus.tr

1.1安裝被測APP到測試機,不啟動APP。

1.2使用adb連接到測試機,

cat /data/system/packages.list | grep com.newsplus.tr

 

 

 

圖中10216即為該包UID

1.3使用命令查看當前下行(下載)流量情況

cat /proc/uid_stat/10216/tcp_rcv

 

 

(結果中4390單位為bytes,其中10216為我們獲取到的UID)

1.4啟動APP到APP徹底啟動

再次執行執行命令cat/proc/uid_stat/10216/tcp_rcv

 

 

 

1.5 rcv代表上行流量,把tcp_rcv換為snd可以查看上行流量。例子如下

cat/proc/uid_stat/10216/tcp_sed

 

 

 

1.6計算實際tcp上下行流量

 

(78145-4390)/1024計算出下行(下載)流量的大小單位KB

(25413-4338)/1024計算出上行(上傳)流量的大小單位KB

 

 

 

注意:啟動APP后的流量記錄多嘗試幾次,當不操作APP且流量值不變化時為准。

 

 

 

 

該方法優勢:簡單,容易上手,容易測出對應場景下上下行流量,容易封裝為腳本。

該方法劣勢:協議限制性,無法進行具體的剖析。

 


免責聲明!

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



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