轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/71750907 本文出自 "【趙彥軍的博客】" 什麼是 Monkey Monkey 是一個 Android 自動化測試小工具。主要用於Android 的壓力測試, 主要目的就是為了測試 ...
轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/71750907
本文出自【趙彥軍的博客】
什麼是 Monkey
Monkey 是一個 Android 自動化測試小工具。主要用於Android 的壓力測試, 主要目的就是為了測試app 是否會Crash.
Monkey 特點
顧名思義,Monkey就是猴子, Monkey測試,就像一隻猴子, 在電腦面前,亂敲鍵盤在測試。 猴子什麼都不懂, 只知道亂敲。通過Monkey程式模擬用戶觸摸屏幕、滑動Trackball、 按鍵等操作來對設備上的程式進行壓力測試,檢測程式多久的時間會發生異常。
Monkey程式介紹
Monkey 程式是由 Android 系統自帶,使用 Java 語言寫成。在Android文件系統中的存放路徑是: /system/framework/monkey.jar;
Monkey.jar程式是由一個名為“monkey”的Shell腳本來啟動執行,shell腳本在Android文件系統中 的存放路徑是:/system/bin/monkey;
Monkey 啟動方式:在 cmd 命令提示符裡面輸入命令行來啟動 monkey 測試。
Monkey 架構
Monkey 運行在設備或模擬器上面,可以脫離PC運行(普遍做法是將monkey作為一個像待測應用發送 隨機按鍵消息的測試工具。驗證待測應用在這些隨機性的輸入面前是否會閃退或者崩潰)
Monkey 參數大全
Monkey 命令基本參數介紹
1、允許啟動手機裡面所有的 App , 隨機操作 1000 次
adb shell monkey 1000
2、-p : 允許啟動 App 的包名
- 啟動一個包名的應用
QQ 的包名為: com.tencent.mobileqq
adb shell monkey -p com.tencent.mobileqq 1000
隨機操作 手機 QQ 1000 次
- 啟動指定的多個 App
微信的包名為:com.tencent.mm
adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000
隨機操作 手機 QQ 和 微信 1000 次
3、-v : 操作日誌記錄
命令行的每一個-v將增加反饋信息的級別。
- -v:Level 0(預設值)除 啟動提示、測試完成和最終結果之外,提供較少信息。
- -v -v :Level 1提供較為詳細的測試信息,如逐個發送到Activity的 事件。
- -v -v -v :Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity。
adb shell monkey -p com.tencent.mobileqq -v -v -v 100
4、-s : 偽隨機數生成器的seed值
如果用相同的seed值再次運行monkey,將生成相同的事件序列。
adb shell monkey -s 12345 -v 10
5、--ignore-crashes : 忽略操作是崩潰異常
通常,應用發生崩潰或異常時Monkey會停止運行。如果設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
adb shell monkey --ignore-crashes -v 1000
6、--ignore-timeouts : 忽略超時
通常,應用程式發生任何超時錯誤(如“Application Not responding”對話框)Monkey將停止運行,設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
adb shell monkey --ignore-timeouts -v 1000
7、--ignore-security-exceptions : 忽略程式發生許可異常
通常,當程式發生許可錯誤(例如啟動一些需要許可的Activity)導致的異常時,Monkey將停止運行。設置此項,Monkey將繼續發送事件給系統,直到事件計數完成。
adb shell monkey --ignore-security-exceptions -v 1000
8、--throttle : 插入固定延遲
在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執行速度。如果不指定該選項,Monkey將不會被延遲,事件將儘可能快地被執行。
adb shell monkey --throttle 500 -v 500
隨機執行 500 個事件,每個事件之間延遲 500 毫秒被執行。
9、--help : 列出簡單的用法
adb shell monkey -help
結果:
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
[--ignore-crashes] [--ignore-timeouts]
[--ignore-security-exceptions]
[--monitor-native-crashes] [--ignore-native-crashes]
[--kill-process-after-error] [--hprof]
[--pct-touch PERCENT] [--pct-motion PERCENT]
[--pct-trackball PERCENT] [--pct-syskeys PERCENT]
[--pct-nav PERCENT] [--pct-majornav PERCENT]
[--pct-appswitch PERCENT] [--pct-flip PERCENT]
[--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg] [--dbg-no-events]
[--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
[--port port]
[-s SEED] [-v [-v] ...]
[--throttle MILLISEC] [--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
COUNT
Monkey 異常處理
1、調試設備找不到
error: no devices/emulators found
解決方案: 打開開發者選項,打開 USB 調試