Monkey測試須要知道軟件包的包名, 如何獲取包名:html
要求:android
1.手機首先要root;shell
2.在手機中須要安裝RE文件管理器,對/data/data目錄進行操做(掛載爲讀寫),這樣adb shell才能對這個文件夾中的內容進行操做;windows
3.adb.exe須要在環境變量中;app
步驟:eclipse
1.進入到cmd操做界面;工具
2.輸入 adb shell 命令; 出現以下界面學習
3.輸入 cd /data/data 命令;出現以下界面測試
4.輸入 ls 命令;能夠列出data文件夾中全部的app包名spa
5.而後能夠運行monkey測試了
monkey –p com.zhihu.android –v 500
com.zhihu.android這個就是要測試應用包名。能夠看見手機上面知乎app開始自運行了。
若是是在Dos下, 須要用: adb shell monkey –p com.zhihu.android –v 500
android monkey測試分析
一. 初步分析方法: Monkey測試出現錯誤後,通常的差錯步驟爲如下幾步:
一、 找到是monkey裏面的哪一個地方出錯 二、 查看Monkey裏面出錯前的一些事件動做,並手動執行該動做 三、 若以上步驟還不能找出,可使用以前執行的monkey命令再執行一遍
壓力測試-Monkey學習 入門見
http://www.cnblogs.com/summer-sun/p/5743851.html
Monkey是Android SDK提供的一個命令行工具(Android平臺下一個命令行自動化測試工具),能夠運行在模擬器裏或實際設備中。 它向系統發送僞隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey包括許多選項,它們大體分爲四大類:
在Monkey運行的時候,它生成事件,並把它們發給系統。同時,Monkey還對測試中的系統進行監測,對下列三種狀況進行特殊處理(自動中止):
按照選定的不一樣級別的反饋信息,在Monkey中還能夠看到其執行過程報告和生成的事件
2、測試準備
1. 開始—>運行—>cmd
2. usb鏈接手機,輸入 adb shell 命令
3. 進入手機後,輸入相應的monkey命令便可測試
基本語法以下:
一、$ adb shell monkey [options]
adb shell monkey –p 程序包 –v 測試次數
若是不指定options,Monkey將以無反饋模式啓動,並把事件任意發送到安裝在目標環境中的所有包。
下面是一個更爲典型的命令行示例,它啓動com.dianping.XXX程序包,並向其發送500個僞隨機事件:$ adb shell monkey -p com.dianping.XXX -v 500
二、執行單一apk:
monkey –p <options> -c <options> -s <seed> <限制語句> --throttle <milliseconds> -v 執行次數> C:\monkey_test.txt
三、執行apk集合:
monkey –pkg-blacklist-file /data/blacklist.txt -c <options> -s <seed> <限制語句> --throttle <milliseconds> -v 執行次數> C:\blacklist_test.txt //執行黑名單之外的應用
或
monkey –pkg-whitelist-file /data/whitelist.txt -c <options> -s <seed> <限制語句> --throttle <milliseconds> -v 執行次數 > C:\whitelist_test.txt //執行白名單的應用
用Monkey test測試,爲了方便分析問題,能夠在命令monkey命令後面加上 「|logcat -v time」,這樣就能邊測試邊打印Log(記得用終端保存Log文本)例如:
adb shell monkey –p com.dianping.XXX –v 20000|logcat -v time
可是這個組合在monkey測試完成後,logcat仍然在執行,測試時須要注意
若是測試monkey碰到crash或者anr(程序強制性退出或不響應)現象時,在抓取log的同時須要提供traces.txt,
步驟以下:{ adb pull /data/anr/traces.txt .}
1. 測試版本須要具有root權限
2. 進入data/anr目錄下面
3. 將traces.txt文件拷貝到TF卡中,而後拷貝出來發給軟件分析便可 eg. trace view
1、首先在cmd或終端中輸入adb shell
2、再執行monkey,好比
monkey -p com.dianping.XXX --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 100 >/mnt/sdcard/monkey.txt & logcat -v time >/mnt/sdcard/logcat.txt
NOTE:若是不想生成logcat文件,刪除紅色標記(& logcat -v time >/mnt/sdcard/logcat.txt)中便可
3、終端內打開存放日誌地址,好比
cd /Users/wengyb/Documents
4、拖日誌到電腦上,好比
adb pull /mnt/sdcard/monkey.txt
adb shell ps(查找進程PID)
adb shell kill pid (殺掉進程)
分類 |
參數 |
含義 |
備註 |
基本 |
--help |
幫助信息 |
|
-v |
命令行的每個-v將增長反饋信息的級別 |
|
|
事件 |
-s |
|
兩次測試的效果是相同的,由於模擬的用戶操做序列(每次操做按照必定的前後順序所組成的一系列操做,即一個序列)是同樣的。 操做序列雖然是隨機生成的,可是隻要咱們指定了相同的Seed值,就能夠保證兩次測試產生的隨機操做序列是徹底相同的,因此這個操做序列僞隨機的 |
--throttle |
|
adb shell monkey -p com.dianping.XXX –throttle 3000 100 |
|
調整百分比 —pct+{-事件名} |
--pct-touch |
調整觸摸事件的百分比 |
觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置 |
--pct-motion |
調整動做事件的百分比 |
動做事件由屏幕上某處的一個down事件、一系列的僞隨機事件和一個up事件組成 |
|
--pct-trackball |
調整軌跡事件的百分比 |
軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊 |
|
--pct-nav |
調整「基本」導航事件的百分比 |
導航事件由來自方向輸入設備的up/down/left/right組成 |
|
--pct-majornav |
調整「主要」導航事件的百分比 |
這些導航事件一般引起圖形界面中的動做,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵 |
|
--pct-syskeys |
調整「系統」按鍵事件的百分比 |
這些按鍵一般被保留,由系統使用,如Home、Back、Start Call、End Call及音量控制鍵 |
|
--pct-appswitch |
調整啓動Activity的百分比 |
在隨機間隔裏,Monkey將執行一個startActivity()調用,做爲最大程度覆蓋包中所有Activity的一種方法 |
|
--pct-anyevent |
調整其它類型事件的百分比 |
它包羅了全部其它類型的事件,如:按鍵、其它不經常使用的設備按鈕等等 |
|
約束限制 |
-p |
|
|
-c |
|
要指定多個類別,須要使用多個-c選項,每一個-c選 項只能用於一個類別 |
|
調試 |
--dbg-no-events |
設置此選項,Monkey將執行初始啓動,進入到一個測試Activity,而後不會再進一步生成事件 |
爲了獲得最佳結果,把它與-v、一個或幾個包約束、以及一個保持Monkey運行30秒或更長時間的非零值聯合起來,從而提供一個環境,能夠監視應用程序所調用的包之間的轉換 |
--hprof |
設置此選項,將在Monkey事件序列以前和以後當即生成profiling報告 |
這將會在data/misc中生成大文件(~5Mb),因此要當心使用它 |
|
--ignore-crashes |
|
|
|
--ignore-timeouts |
|
|
|
--ignore-security-exceptions |
|
|
|
--kill-process-after-error |
|
正常的(成功的)結束,並無中止啓動的進程,設備只是在結束事件以後,簡單地保持在最後的狀態 |
|
--monitor-native-crashes |
|
|
|
--wait-dbg |
中止執行中的Monkey,直到有調試器和它相鏈接 |
|
Mac下:
一、 經過eclipse啓動一個Android的emulator或者鏈接真機
二、 在命令行中輸入:adb devices查看設備鏈接狀況
三、 在有設備鏈接的前提下,在命令行中輸入:adb shell 進入shell界面。若是有多個device的時候,加-s參數指定:adb -s devicename shell
四、在其中找到咱們須要測試的包名com.dianping.XXX
五、 查看data/data文件夾下的應用程序包(可測試的應用程序包都在這個目錄下面)
ls data/data
若是出現opendir failed,Permission denied 則可用root解決
鍵入 su root
而後鍵入 ls data/data 查看包
六、 以com.dianping.XXX 做爲對象進行MonkeyTest 命令行》》monkey -p com.dianping.XXX -v 500 其中-p表示對象包 –v 表示事件數量
運行過程當中,Emulator/真機中的應用程序在不斷地切換畫面。
按照選定的不一樣級別的反饋信息,在Monkey中還能夠看到其執行過程報告和生成的事件。
monkey -p com.dianping.XXX --throttle 500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 100 >/mnt/sdcard/monkey.txt
cd /Users/wengyb/Documents
adb pull /mnt/sdcard/monkey.txt