Monkey命令詳解(壓力測試工具)
前言:Monkey是 Android SDK 提供的一種壓力測試工具,通過向系統(tǒng)發(fā)送偽隨機(jī)用戶事件(如點(diǎn)擊、滑動、按鍵等)來模擬用戶操作,測試 App 的穩(wěn)定性和健壯性
基本語法
adb shell monkey [options] <event-count>
- event-count: 指定要發(fā)送的隨機(jī)事件總數(shù)
- options: 控件事件類型, 頻率,約束條件等參數(shù)
常用參數(shù)
2.1事件類型參數(shù)
--pct-touch <percent> # 觸摸事件百分比 (點(diǎn)擊屏幕) --pct-motion <percent> # 手勢事件百分比 (滑動操作) --pct-trackball <percent> # 軌跡球事件百分比 (模擬軌跡球輸入) --pct-nav <percent> # 導(dǎo)航鍵事件百分比 (上下左右方向鍵) --pct-majornav <percent> # 主要導(dǎo)航事件百分比 (回退,菜單,Home鍵盤) --pct-syskeys <percent> # 系統(tǒng)按鍵百分比 (電源,音量鍵) --pct-appswitch <percent> # 啟動Activity事件百分比 --pct-flip <percent> # 鍵盤翻轉(zhuǎn)事件百分比
2.2 約束測試范圍
-p <package-name> # 指定測試的app包名 (可重復(fù)使用多個-p) -c <main-category> # 指定測試的Activity類別 (如android.intent.category.LAUNCHER)
2.3 調(diào)試選項(xiàng)
-v # 詳細(xì)級別(可重復(fù)使用多次,最多3次:-v -v -v) --throttle <milliseconds> # 事件間隔時間(毫秒) --ignore-crashes # 忽略崩潰繼續(xù)測試 --ignore-timeouts # 忽略超時繼續(xù)測試 --ignore-security-exceptions # 忽略安全異常繼續(xù)測試 --kill-process-after-error # 發(fā)生錯誤后終止進(jìn)程 --monitor-native-crashes # 監(jiān)控Native代碼崩潰 --hprof # 測試后生成HPROF內(nèi)存分析文件
2.4.1 示例命令
對單個App進(jìn)行基礎(chǔ)測試
adb shell monkey -p com.example.app -v 1000
- 對com.example.app 應(yīng)用發(fā)送1000個隨機(jī)事件
- -v 顯示詳細(xì)日志
2.4.2 控制事件類型分布
adb shell monkey -p com.example.app \ --pct-touch 60 \ --pct-motion 30 \ --pct-appswitch 10 \ -v -v 5000
- 60%觸摸事件,30%滑動事件,10%Activity切換事件
- -v -v顯示更詳細(xì)的日志
2.4.3 設(shè)置事件間隔并忽略崩潰
adb shell monkey -p com.example.app \ --throttle 500 \ --ignore-crashes \ --ignore-timeouts \ 10000
- 每個事件間隔500毫秒
- 忽略崩潰和超時錯誤,持續(xù)測試100000個事件
2.4.4 測試多個App
adb shell monkey -p com.example.app1 -p com.example.app2 -v 5000
- 同時測試兩個app,隨機(jī)在它們之間切換
2.4.5 監(jiān)控Native 崩潰并生成內(nèi)存分析
adb shell monkey -p com.example.app \ --monitor-native-crashes \ --hprof \ -v -v -v 2000
- 監(jiān)控C/C++代碼崩潰
- 測試結(jié)束后生成HPROF內(nèi)存分析文件
進(jìn)階用法
3.1 保存日志到文件
adb shell monkey -p com.example.app -v 10000 > monkey_log.txt 2>&1
3.2在特定Activity啟動測試
adb shell monkey -p com.example.app \ -c android.intent.category.LAUNCHER \ 1000
3.3 組合多個參數(shù)
adb shell monkey -p com.example.app \ --throttle 300 \ --pct-touch 70 \ --pct-majornav 15 \ --pct-appswitch 15 \ --ignore-crashes \ --monitor-native-crashes \ -v -v 20000
到此這篇關(guān)于Monkey命令詳解的文章就介紹到這了,更多相關(guān)Monkey命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何實(shí)現(xiàn)一個Kotlin函數(shù)類型
這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)一個Kotlin函數(shù)類型,文中的實(shí)現(xiàn)方法講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10
Android編程之利用服務(wù)實(shí)現(xiàn)電話監(jiān)聽的方法
這篇文章主要介紹了Android編程之利用服務(wù)實(shí)現(xiàn)電話監(jiān)聽的方法,較為詳細(xì)的分析了Android基于服務(wù)實(shí)現(xiàn)針對電話監(jiān)聽的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11
記錄Android studio JNI開發(fā)的三種方式(推薦)
JNI (Java Native Interface)是一套編程接口,用來實(shí)現(xiàn)Java代碼和其他語言(c、C++或匯編)進(jìn)行交互。下面通過本文給大家講解Android studio JNI開發(fā)的三種方式,需要的朋友參考下吧2017-12-12
Android 實(shí)現(xiàn)不同字體顏色的TextView實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 實(shí)現(xiàn)不同字體顏色的TextView實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android中TelephonyManager用法實(shí)例
這篇文章主要介紹了Android中TelephonyManager用法,結(jié)合實(shí)例形式分析了TelephonyManager類的功能,使用技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-03-03
詳解Flutter自定義應(yīng)用程序內(nèi)鍵盤的實(shí)現(xiàn)方法
本文將展示如何利用Flutter創(chuàng)建自定義鍵盤小部件,用于在自己的應(yīng)用程序中的Flutter TextField中輸入文本,感興趣的小伙伴可以了解一下2022-06-06
Android自定義控件(實(shí)現(xiàn)狀態(tài)提示圖表)
本篇文章主要介紹了android實(shí)現(xiàn)狀態(tài)提示圖表的功能,實(shí)現(xiàn)了動態(tài)圖表的顯示,有需要的朋友可以了解一下。2016-11-11

