標籤:使用者 gen null shell 運行 預設 產生 第一個 blank
Android Monkey 壓力測試 介紹
Monkey 是Android SDK提供的一個命令列工具, 可以簡單,方便地運行在任何版本的Android模擬器和實體裝置上。 Monkey會發送偽隨機的使用者事件流,適合對app做壓力測試
閱讀目錄
- 環境搭建
- 什麼是Monkey
- Monkey 用來做什麼
- Monkey程式介紹
- Monkey 架構
- Monkey弱點
- Monkey 參數大全
- Monkey 命令 基本參數介紹
- Monkey 執行個體
- Monkey 查看包名
- Monkey 日誌分析
- 必須重視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” (如果出現null 指標, NullPointerException) 肯定是有bug
Monkey 執行中斷, 在log最後也能看到當前執行次數
必須重視Crash
雖然Monkey測試有部分缺陷,我們無法準確地得知重現步驟, Monkey測試所出現的NullPointException, 都是可以在使用者使用時出現的, 何時出現只是時間問題
理論上來說, Monkey所有的Crash 都需要在發布前修複掉
本文轉自:https://www.cnblogs.com/TankXiao/p/4815134.html
Android Monkey 壓力測試 介紹