一、Monkey測試介紹html
Monkey測試是Android平臺自動化測試的一種手段,經過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操做來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。android
傳統意義上,Monkey測試主要針對的是應用的健壯性與穩定性,它經過大量的隨機的用戶事件來檢測應用是否會異常。shell
主要使用Monkey測試來進行內存泄露檢查。ide
2、Monkey測試執行工具
Monkey測試可分爲環境配置、測試執行、結果分析3步驟。測試
2.1、環境配置idea
MONKEY測試使用的是ADB命令,所以只須要配置ADB環境便可。spa
2.2、測試準備與執行日誌
在Monkey測試前,必須進行如下準備htm
Ø 手機屏幕超時設置爲30分鐘,防止手機進入鎖屏狀態。
Ø 插入SIM卡和存儲卡後將手機開機,開啓ADB模式,鏈接到PC(存儲卡剩餘空間儘可能留大,建議1G以上)
Ø 開啓系統log。(具體可依據每一個機型平臺決定)
Ø 在PC上執行 運行—>CMD,在彈出的命令窗口中,輸入adb devices,檢查設備是否鏈接
Ø 在彈出的命令窗口中,輸入adb shell,進入Linux Shell
Ø 輸入Ideafriend Monkey命令。以下:
|
monkey -p com.lenovo.ideafriend --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-touch 30 -s 1 -v -v --throttle 200 100000 2>/sdcard/error.txt 1>/sdcard/info.txt |
||
參數 |
描述 |
|
|
-p com.lenovo.ideafriend |
只僅針對特定包名進行測試 |
|
|
--ignore-crashes |
忽略應用程序崩潰(Force & Close錯誤),繼續發送執行事件,直到事件數執行完成 |
|
|
--ignore-timeouts |
忽略應用程序發生ANR(Application No Responding)錯誤時,直到事件數執行完成 |
|
|
--ignore-native-crashes |
忽略本地應用程序發生奔潰,直到事件數執行完成 |
|
|
--pct-touch 30 |
調整觸摸事件爲30%。即整個事件過程當中觸摸事件佔30% |
|
|
-s 1 |
僞隨機數生成器seed值。Seed值爲1。相同的seed值再次執行monkey,將產生相同的事件序列。 |
|
|
-v -v |
日誌級別爲Leve1 1。將提供較爲詳細的日誌,包括每一個發送到Activity的事件信息 |
|
|
--throttle 200 |
事件之間延時200毫秒。能夠控制monkey的執行速度,若是不指定該選項,monkey事件間將不會延時。 |
|
|
100000 |
執行事件數爲10萬次 |
|
|
2>/sdcard/error.txt |
Leve1 2日誌保存到sdcard上的error.txt中 |
|
|
1>/sdcard/info.txt |
Leve1 1日誌保存到sdcard上的info.txt中 |
|
|
|
|
||
|
|
|
|
2.3、結果檢查與分析
測試結束後,須要將手機鏈接PC,拷貝如下文件:
Ø info.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時發送的各類事件,如觸摸事件的位置等等。
Ø error.txt:此文件在手機上的SDCARD中,主要記錄了MONKEY測試時產生的一些ANR、強制關閉等異常。
Ø LOG文件:此文件在手機上的LOG文件夾中中,主要主要記錄程序對MONKEY測試時的響應狀況。
咱們須要對這3個文件進行分析整理,以便提交開發人員處理。
2.3.1、檢查測試是否完成
經過info.txt文件,能夠查看Monkey是否執行成功
2.3.2、結果分析整理
前文有說起,咱們目前執行Monkey測試的目的是爲了檢查是否有內存泄露,而這類問題主要是經過Log文件來體現的。
Error文件也記錄了部分異常,考慮到這部分文件格式已經很規範,所以不須要再次整理。
Log文件記錄了全部信息,所以咱們須要進行初步分析整理後再提交研發,以減小研發工做量。
注意:內存泄露檢查目前主要針對MTK平臺,高通平臺等其餘平臺目前的LOG還未將此部分信息體現。如下說明僅針對MTK平臺的LOG。
經過mtklog文件中main_log文件,咱們能夠查看可能存在內存泄露代碼所在具體位置。是否該行代碼存在泄露須要開發人員進一步驗證。咱們只提供可能存在代碼泄露的信息。
Main_log文件路徑見相關LOG說明 。含有mian_log的文件都須要進行查看。搜索關鍵字「leak」,在搜索結果中,查看與Ideafreiend相關的代碼。
注:com.lenovo.ideafriend:Ideafriend包名;CursorLeakDetecter: 遊標泄露檢查器
當發現相關LOG後,將可能存在內存泄露的代碼所在區域(代碼所在先後5行左右),拷貝到另一個文檔中(新建:mianlog.txt)。泄露的代碼只須要拷貝一處便可。以下圖:
注:紅圈處在ideafriend代碼中的677行可能存在泄露,此時只需拷貝一處便可
3、資料與擴展
3.1 Log信息查看工具可以使用UltraEdit
3.2 Monkey擴展閱讀
[1]Android壓力測試工具Monkey介紹-V1.1-20110822.doc
[2]Monkey官網
http://developer.android.com/tools/help/monkey.html
[3]百度文庫 Monkey測試介紹