Android Monkey 壓力測試 介紹

Monkey 是Android SDK提供的一個命令行工具, 能夠簡單,方便地運行在任何版本的Android模擬器和實體設備上。 Monkey會發送僞隨機的用戶事件流,適合對app作壓力測試shell

 

閱讀目錄架構

 

環境搭建

安裝Android SDK 並配置環境變量app

http://pan.baidu.com/s/1jIlifbS工具

 

什麼是Monkey

顧名思義,Monkey就是猴子,  Monkey測試,就像一隻猴子, 在電腦面前,亂敲鍵盤在測試。  猴子什麼都不懂, 只知道亂敲性能

經過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操做來對設備上的程序進行壓力測試,檢測程序多久的時間會發生異常測試

 

Monkey 用來作什麼

Monkey 主要用於Android 的壓力測試  自動的一個壓力測試小工具, 主要目的就是爲了測試app 是否會Crash.spa

 

Monkey程序介紹

(1) Monkey程序由Android系統自帶,使用Java詫言寫成,在Android文件系統中的存放路徑是: /system/framework/monkey.jar;   
(2) Monkey.jar程序是由一個名爲「monkey」的Shell腳原本啓動執行,shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey;  
(3)Monkey 命令啓動方式:    
          a)能夠經過PC機CMD窗口中執行: adb shell monkey {+命令參數}來進行Monkey測試          命令行

b)在PC上adb shell 進入Android系統,經過執行 monkey {+命令參數} 來進行Monkey 測試           指針

c )  在Android機或者模擬器上直接執行monkey 命令,能夠在Android機上安裝Android終端模擬器  

日誌

 

 

Monkey 架構

Monkey 運行在設備或模擬器上面,能夠脫離PC運行(廣泛作法是將monkey做爲一個像待測應用發送 隨機按鍵消息的測試工具。驗證待測應用在這些隨機性的輸入面前是否會閃退或者崩潰)

 

Monkey弱點

Monkey雖然能夠根據一個指定的命令腳本發送按鍵消息,但其丌支持條件判斷,也丌支持讀取待測界 面的信息來執行驗證操做。

 

 

Monkey 參數大全

 

Monkey 命令 基本參數介紹

-p <容許的包名列表>         

用此參數指定一個或多個包。指定包以後,monkey將只容許系統啓動指定的app。若是丌指定包, monkey將容許系統啓動設備中的全部app。  

指定一個包:adb shell monkey -p com.shjt.map 100   

指定多個包:adb shell monkey -p fishjoy.control.menu  –p com.shjt.map  100  

 

-v        

用亍指定反饋信息級別(信息級別就是日誌的詳細程度),總共分3個級別,分別對應的參數以下 表所示: 

Level 0  :  adb shell monkey -p com.shjt.map -v 100               // 缺省值,僅提供啓動提示、測試完成和最終結果等少許信息   

Level 1  :  adb shell monkey -p com.shjt.map -v  -v 100          // 提供較爲詳細的日誌,包括每一個發送到Activity的事件信息

Level 2  :  adb shell monkey -p com.shjt.map -v  -v  -v 100     // 最詳細的日誌,包括了測試中選中/未選中的Activity信息


-s(隨機數種子)            

用亍指定僞隨機數生成器的seed值,若是seed相同,則兩次Monkey測試所產生的事件序列也相同的。  示例:

monkey測試1:adb shell monkey -p com.shjt.map –s 10 100                

monkey測試2:adb shell monkey -p com.shjt.map –s 10 100  


--throttle <毫秒>            

用亍指定用戶操做(即事件)間的時延,單位是毫秒;若是丌指定這個參數,monkey會盡量快的 生成和發送消息。 示

例:adb shell monkey -p com.shjt.map --throttle 3000 100   

 

Monkey 實例

用monkey 命令 對上海公交 app進行 性能測試
adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:\monkey.txt

 

 

Monkey 查看包名

手機中安裝APK包名查看器  

源碼下的AndroidManifest.xml文件查看  
aapt命令查看  


 

 

Monkey  日誌分析

正常狀況,  若是Monkey測試順利執行完成, 在log的最後, 會打印出當前執行事件的次數和所花費的時間; // Monkey finished 表明執行完成\

 

異常狀況

Monkey 測試出現錯誤後,通常的分析步驟
看Monkey的日誌 (注意第一個swith以及異常信息等)
1. 程序無響應的問題: 在日誌中搜索 「ANR」
2. 崩潰問題:在日誌中搜索 「Exception」   (若是出現空指針, NullPointerException)  確定是有bug

Monkey 執行中斷, 在log最後也能看到當前執行次數

 

必須重視Crash

 

雖然Monkey測試有部分缺陷,咱們沒法準確地得知重現步驟, Monkey測試所出現的NullPointException,  都是能夠在用戶使用時出現的, 什麼時候出現只是時間問題

理論上來講,  Monkey全部的Crash 都須要在發佈前修復掉

相關文章
相關標籤/搜索