Android Monkey 壓力測試 介紹
Monkey 是Android SDK提供的一個命令列工具, 可以簡單,方便地執行在任何版本的Android模擬器和實體裝置上。 Monkey會傳送偽隨機的使用者事件流,適合對app做壓力測試
環境搭建
什麼是Monkey
Monkey 用來做什麼
Monkey程式介紹
Monkey 架構
Monkey弱點
Monkey 引數大全
Monkey 命令 基本引數介紹
Monkey 例項
Monkey 檢視包名
Monkey 日誌分析
必須重視Crash
環境搭建
安裝Android SDK 並配置環境變數
什麼是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 都需要在釋出前修復掉
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3407/viewspace-2811547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android命令Monkey壓力測試,詳解Android
- mysqlslap壓力測試介紹MySql
- 壓力測試sysbench安裝及引數介紹
- 效能測試:主流壓測工具介紹
- 實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰APP
- ORACLE壓力測試Oracle
- laravel壓力測試Laravel
- MACOSXApacheab壓力測試MacApache
- NGINX壓力測試Nginx
- mysqlslap壓力測試MySql
- 壓力測試工具
- android monkey 測試方法實踐Android
- nginx壓力測試方法:Nginx
- 壓力測試指令碼指令碼
- (一)效能測試(壓力測試、負載測試)負載
- RestCloud測試平臺,支援壓力測試RESTCloud
- Android 自動化測試之 MonkeyAndroid
- Android 測試入門之---Monkey testAndroid
- 讓測試事半功倍軟體壓力測試工具分享,壓力測試報告怎麼收費?測試報告
- Apache Bench Web 壓力測試ApacheWeb
- oracle壓力測試之orastress!OracleAST
- 壓力測試工具之FIO
- webbench進行壓力測試Web
- 壓力測試工具之mysqlslapMySql
- 網站壓力測試工具網站
- Mysql 壓力測試工具sysbenchMySql
- Oracle壓力測試:HammeroraOracle
- Jmeter效能測試 —— 壓力模式JMeter模式
- apache ab壓力測試工具-批次壓測指令碼Apache指令碼
- 軟體壓力測試怎麼做?出具壓力測試報告軟體測評中心測試報告
- Android穩定性測試-- Monkey原始碼分析Android原始碼
- [android]Monkey自動化測試引數Android
- 軟體壓力測試流程和測試工具分享,讓你寫壓力測試報告再也不愁測試報告
- android測試常用的adb命令以及進行Monkey測試Android
- 混沌測試介紹
- 10大主流壓力測試工具
- oracle壓力測試之orabm(二)Oracle
- oracle壓力測試之orabm(三)Oracle