Monkey測試log的保存與分析


 

文檔名稱

Monkey測試執行與LOG分析

文檔說明

 

更改記錄

 

 

 

 

 

 

 

 

 

 

 

 

 

1、Monkey測試介紹

 

Monkey測試是Android平台自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常。

 

傳統意義上,Monkey測試主要針對的是應用的健壯性與穩定性,它通過大量的隨機的用戶事件來檢測應用是否會異常。

 

主要使用Monkey測試來進行內存泄露檢查。

 

2、Monkey測試執行

 

Monkey測試可分為環境配置、測試執行、結果分析3步驟。

 

2.1、環境配置

 

MONKEY測試使用的是ADB命令,因此只需要配置ADB環境即可。

 

2.2、測試准備與執行

 

Monkey測試前,必須進行以下准備

 

Ø  手機屏幕超時設置為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

忽略應用程序發生ANRApplication 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測試介紹

 

http://wenku.baidu.com/view/476c79b8fd0a79563c1e72b6.html

 

 

 

 

 

4、Monkey log工具使用

 

Monkey測試后在Mobilelog文件中會產生多個main_log文件,里面含有詳細的log執行記錄,通過下面五步,挑選出我們所需要的信息。

 

1、  合並含有main_log文件,另存為main_log.txt

 

 將上述文件合並並重命名為main_log.txt

 

2、  查找標注可能泄露的log,使用工具Ideafriend_LogTool_1.jar

 

 

 

 

3、在生成的mian_log_search.txt中查找Ideafriend可能的泄露處。使用工具Ideafriend_logTool_2.jar

 

 

注:在文件夾MainLog中,查看文件名格式為:Ideafriend_xxx.txt的說明為Ideafriend可能泄露的代碼。刪除所有文件名含有dele_xxx.txt的文件。

 

4、  查找出重復的文件,使用工具NoClone.exe

 

 

在重復的列表中標記復制出,重復中一項(如圖所示522個文件中有4個重復的,因此只要復制出4個就可以),在非重復中的所有文件(如圖所示為3個)

 

5、  合並我們查找出來的文件,使用工具庖丁解牛.exe

 

 

如圖所示,添加要合並的文件,保存文件為TXT

 

S920_main_log.txt 就是我們需要的文件,log整理完成。

詳情:http://wenku.baidu.com/browse/downloadrec?doc_id=18d475440066f5335a812172&

   http://wenku.baidu.com/link?url=u7K2PlMUYvQ6twbOOFryDBq5gwWSm6iSHgq3NDfVIcboCJUiQpkK4TAA53glKnTEdr8x2XDf4C2OiMLGNn2NES3MXlhvXWQvOzrHWZlhwOy###

 

 

 

 


免責聲明!

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



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