monkey測試===通過monkey測試檢查app內存泄漏和cpu占用


最近一直在研究monkey測試。網上資料很多,但都是一個抄一個的。原創的很少

把檢查app內存泄漏的情況梳理一下:

參考資料:

首先基礎的monkey測試,之前講過。參照以前文檔

在monkey測試的同時我們需要關注的一個點。

內存檢測

內存檢測用批處理腳本記錄,約5秒記錄一次:

腳本如下,保存為bat文件

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0 ::@mode con lines=18 cols=50

set package1=com.xxxx.xxxxx adb shell dumpsys meminfo %package1% | findstr "Pss" > ./info_1.txt :start adb shell dumpsys meminfo %package1% | findstr "TOTAL" >> ./info_1.txt echo. echo. ping -n 5 127.1>nul goto start

我們先可以看一下基礎的命令,查看應用內存的命令:adb shell dumpsys meminfo (進程名)

這里得到的信息非常多,重點關注如下幾個字段:

(1) Native/Dalvik 的 Heap 信息

具體在上面的第一行和第二行,它分別給出的是JNI層和Java層的內存分配情況,如果發現這個值一直增長,則代表程序可能出現了內存泄漏。

(2) Total 的 PSS 信息

這個值就是你的應用真正占據的內存大小,通過這個信息,你可以輕松判別手機中哪些程序占內存比較大了。

所以我們運行上面的bat文件。得到的數據是這樣的:

右邊三列,如果執行了用戶事件流10萬次后,發現數值一直在增長,那么很有可能是內存泄漏了。

左邊第一列,表示app占據內存的大小,比如開四個app程序同時,我們可以比較哪個程序最占用內存,就是通過這個數據!

 

cpu檢查:

 bat腳本為

@echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
::@mode con lines=18 cols=50

set package1=com.xxxx.xxxxx


adb shell top -n 1 | findstr "PID" > ./cupInfo_1.txt

:start
adb shell top -n 1 | findstr %package1% >> ./cupInfo_1.txt


echo.
echo.
ping -n 5 127.1>nul
goto start

 

 

 

用到的是adb shell top 命令參考文檔:http://blog.csdn.net/kittyboy0001/article/details/38562515

 

 

PID   進程id
PR    優先級
CPU%  當前瞬時CPU占用率
S     進程狀態:D=不可中斷的睡眠狀態, R=運行, S=睡眠, T=跟蹤/停止, Z=僵屍進程
#THR  程序當前所用的線程數
VSS   Virtual Set Size  虛擬耗用內存(包含共享庫占用的內存)
RSS   Resident Set Size 實際使用物理內存(包含共享庫占用的內存)
PCY   調度策略優先級,SP_BACKGROUND/SP_FOREGROUND
UID   進程所有者的用戶id
Name  進程的名稱

 

 *最好的辦法是做一個Excel圖表,把對比數據列出來

順便提一下


 

如果你也喜歡Python 這里有一群Python愛好者匯集在此。

關注微信公眾號:【軟件測試技術】,回復 888,獲取QQ群號。 

 

 

 


免責聲明!

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



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