1. 程式人生 > >Android應用專項測試淺談

Android應用專項測試淺談

Android應用專項測試淺談

文章轉載自:https://testerhome.com/topics/2513

一、壓力測試Monkey

使用不同策略:

1.根據自己的策略(各操作比重不同)來制定指令碼,還可以二次開發,例如我之前修改的adb-for-test工程。

2.自動遍歷介面每一個Views,點選每一個控制元件,保證monkey可以在每一個Activity上面都可以執行到。

3.Monkey測試一般是app進入整合測試時就每天進行,保證0 crash0 ANR

二、CPU佔用百分比

使用adb shell top -n 1|findstr 包名$

 

第三列4%表示這個app所佔用的CPU

百分比。

/system/build.prop檔案設定了一些Dalvik虛擬機器的配置。

通過進入shell使用者後,進入到system下,cat build.prop,看到這個機器的一些資訊:

 

1.dalvik.vm.heapstartsize(表示應用程式啟動後為其分配的初始堆記憶體大小8M)。這個值越大系統消耗RAM越快,應用程式開啟後反應越快。

2.Dalvik.vm.heapgrowthlimit(每個應用程式最大記憶體可分配到96M)

3.Dalvik.vm.heapsize(表示單個虛擬機器可分配的最大記憶體256M)

這個值越大系統消耗RAM則越快,程式執行會非常穩定。當記憶體佔用每次超過

256M倍數,就會再+256M劃分新的虛擬機器,可能會造成部分浪費。

使用adb shell procrank引數也可以檢視:

 

三、應用記憶體佔用

使用adb shell dumpsys meminfo 包名 來獲取記憶體實時佔用情況。

 

Heap Size:堆記憶體,Heap Alloc:堆分配 private dirty:實際上是由RAM允許你的app分配的。

Pss TOTAL表示是應用佔用的記憶體大小。

四、獲取當前電量

獲取電池充電狀態:adb shell dumpsys battery|findstr status

 

1:未知狀態  2:充電狀態  3:放電狀態  4:未充電

5:充電已滿

當前電量百分比:adb shell dumpsys battery|findstr level

 

五、流量資料獲取

1.首先需要根據應用包名(應用必須是執行狀態)獲取程序pid

Adb shell ps|findstr 包名$

 

第二列表示程序pid,然後根據pid獲取使用者uid

Adb shell cat /proc/pid/status|findstr Uid

 

根據uid就可以得到接收和傳送的流量資訊:

Adb shell cat /proc/uid_stat/Uid/tcp_rcv 獲取接收資料大小(KB)

 

Adb shell cat /proc/uid_stat/Uid/tcp_snd 獲取傳送資料大小(KB)

 

六、記憶體洩漏

Hprof檔案分析:hprof檔案主要來源是ddms,使用MAT工具將hprof檔案進行轉義,測試及操作場景很重要,需要根據場景進行相應的操作。