Android -自動化壓力測試工具-monkey之使用篇

轉載出處:http://www.cnblogs.com/TankXiao/p/4815134.html#setup

環境搭建

安裝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 –-throttle100–-pct-touch50–-pct-motion50–v –v1000>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?都需要在發布前修復掉

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容