Monkey測試log的保存與分析


一、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測試介紹

 

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

相關文章
相關標籤/搜索