您好,登錄后才能下訂單哦!
最近開始研究Android測試的Monkey工具,因接觸時間很短,還有很多不足之處,希望能和大家多多交流。
● 什么是Monkey
Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨
機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。
Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。
● 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 命令、基本參數介紹
- 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查看包名
1)手機中安裝APK包名查看器
2)源碼下的AndroidManifest.xml文件查看
3)aapt命令查看
● Monkey日志分析
正常情況,如果Monkey測試順利執行完成,在log的最后,會打印出當前執行事件的次數和所花費的時間; // Monkey finished 代表執行完成\
異常情況
Monkey 測試出現錯誤后,一般的分析步驟
看Monkey的日志 (注意第一個swith以及異常信息等)
1. 程序無響應的問題: 在日志中搜索 “ANR”
2. 崩潰問題:在日志中搜索 “Exception” (如果出現空指針 NullPointerException)肯定是有bug
Monkey 執行中斷,在log最后也能看到當前執行次數
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。