一舞蔽、 什么是Monkey
Monkey是Android中的一個命令行工具甚侣,可以運行在模擬器里或?qū)嶋H設(shè)備中跨跨。它向系統(tǒng)發(fā)送偽隨
機的用戶事件流(如按鍵輸入掏秩、觸摸屏輸入锐朴、手勢輸入等)兴喂,實現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。
Monkey測試是一種為了測試軟件的穩(wěn)定性焚志、健壯性的快速有效的方法衣迷。
二、 環(huán)境搭建
1:下載sdk(類比java jdk) 文件較大
官網(wǎng)下載
<a >sdk下載</a>
2:配置環(huán)境變量
在path中添加tools 和platform-tools的路徑酱酬, 這2個文件夾的路徑
詳情參見百度經(jīng)驗:
<a >sdk環(huán)境配置</a>
測試命令:
在cmd下執(zhí)行 adb
三壶谒、 常用命令介紹:
adb devices 查看設(shè)備
adb install apk文件 安裝app
四、monkey的使用 基本語法如下:
adb shell monkey [options]
如果不指定options岳悟,Monkey將以無反饋模式啟動佃迄,并把事件任意發(fā)送到安裝在目標(biāo)環(huán)境中的全部包泼差。
例如:
adb shell monkey -p com.pingan.yzt -v --throttle 100 --pct-majornav 0.01 --ignore-crashes --ignore-timeouts --monitor-native-crashes 20000 ->./Desktop/cxf.log
五:常用命令簡介
1) 參數(shù): -p 參數(shù)-p用于約束限制贵少,用此參數(shù)指定一個或多個包(Package,即App)堆缘。
指定包之后滔灶,Monkey將只允許系統(tǒng)啟動指定的APP。如果不指定包吼肥,Monkey將允許系統(tǒng)啟動
設(shè)備中的所有APP录平。
指定一個包:
adb shell monkey -p com.example.sellclientapp 100 adb shell monkey 1002)
參數(shù): -s
用于指定偽隨機數(shù)生成器的seed值麻车,如果seed相同,則兩次Monkey測試所產(chǎn)生的事件序列相同斗这。
示例:
Monkey測試1:adb shell monkey -p com.htc.Weather –s 10 100
Monkey 測試2:adb shell monkey -p com.htc.Weather –s 10 100
兩次測試的效果是相同的动猬,因為模擬的用戶操作序列(每次操作按照一定的先后順序所組成
的一系列操作,即一個序列)是一樣的表箭。
常用指令參數(shù)(后面需制定百分比 必須整形)
--throttle:每個事件結(jié)束后的間隔時間——降低系統(tǒng)的壓力(如不指定赁咙,系統(tǒng)會盡快的發(fā)送事件序列)。
如:--throttle 100
--pct-touch:指定觸摸事件的百分比
如:--pct-touch 5%
--pct-motion (滑動事件)
--pct-trackball (軌跡球事件)
--pct-nav (導(dǎo)航事件 up/down/left/right)
--pct-majornav (主要導(dǎo)航事件 back key 免钻、 menu key)
--pct-syskeys (系統(tǒng)按鍵事件 Home 彼水、Back 、startCall 极舔、 endCall volumeControl)
--pct-appswitch (activity之間的切換)
--pct-anyevent (任意事件)常用異常處理指令(直接使用)
--dbg-no-events:初始化啟動的activity凤覆,但是不產(chǎn)生任何事件。
--hprof:指定該項后在事件序列發(fā)送前后會立即生成分析報告 —— 一般建議指定該項拆魏。
--ignore-crashes:忽略崩潰
--ignore-timeouts:忽略超時
--ignore-security-exceptions:忽略安全異常
--kill-process-after-error:發(fā)生錯誤后直接殺掉進(jìn)程
--monitor-native-crashes:跟蹤本地方法的崩潰問題
--wait-dbg:知道連接了調(diào)試器才執(zhí)行monkey測試盯桦。
日志級別
-v,Level 0(缺省值)渤刃,除啟動提示俺附、測試完成和最終結(jié)果之外,提供較少信息
-v -v溪掀,Level 1事镣,提供較為詳細(xì)的測試信息,如:逐個發(fā)送到Activity的事件
-v -v -v揪胃,Level 2璃哟,提供更加詳細(xì)的設(shè)置信息,如:測試中被選中的或未被選中的Activity