Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Monkey壓力測試詳細介紹

Android Monkey壓力測試詳細介紹

編輯:關於Android編程

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

閱讀目錄

  1. 環境搭建
  2. 什麼是Monkey
  3. Monkey 用來做什麼
  4. Monkey程序介紹
  5. Monkey 架構
  6. Monkey弱點
  7. Monkey 參數大全
  8. Monkey 命令 基本參數介紹
  9. Monkey 實例
  10. Monkey 查看包名
  11. Monkey  日志分析
  12. 必須重視Crash

環境搭建

安裝Android SDK 並配置環境變量

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

什麼是Monkey

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

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

Monkey 用來做什麼

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

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 都需要在發布前修復掉

 以上就是對Android Monkey壓力測試的文章整理,後續繼續補充,謝謝大家的支持!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved