monkey adb

Monkey adb命令java

https://blog.csdn.net/tanqiaoxing/article/details/77772912android

 

Monkey是一款經過命令行來對咱們APP進行測試的工具,能夠運行在模擬器裏或真機上shell

第一步:搭建環境:主要是安裝和搭建javasdk環境網絡

第二步:準備好要測試的項目,好比能夠是一個.apk安裝包,也能夠是已經安裝到手機上的軟件app

第三步:鏈接上Android測試設備,能夠是模擬器,固然也能夠是手機,經過adb 命令對測試項目進行Monkey測試。工具

 

 

 

adb connect 127.0.0.1:7555鏈接設備測試

adb devices 獲取鏈接設備及狀態     adb devices -l顯示鏈接設備名spa

 

 

adb get-state獲取設備狀態.net

 

設備的狀態有 3 鍾,device , offline , unknown 
device:設備正常鏈接 
offline:鏈接出現異常,設備無響應 
unknown:沒有鏈接設備命令行

 

adb kill-server , adb start-server , 結束 adb 服務, 啓動 adb 服務,一般兩個命令一塊兒用

 

adb logcat , 打印 Android 的系統日誌

adb bugreport , 打印dumpsysdumpstatelogcat的輸出,也是用於分析錯誤

 

adb uninstall 應用的包名 卸載制定應用

 

adb install xx.apk  把指定的apk包安裝到設備中(帶路徑adb install D:\adb\zhongchou.apk

 

adb shell pm list packages 查看apk在手機上的包名

adb shell pm list packages -f 查看應用的apk文件在手機上的安裝位置

 

 

adb pull , Android 設備上的文件或者文件夾複製到本地

例如複製 Sdcard 下的 pull.txt 文件到 D   adb pull sdcard/pull.txt d:\

複製重命名

adb pull sdcard/pull.txt d:\rename.txt

 

adb push 推送

adb push d:\push.txt sdcard/    sdcard/斜槓不能少

 

adb root , adb remount  獲取root權限

 

adb reboot , 重啓 Android 設備

 

adb shell monkey :給指定的設備發送壓力測試,number是要測試的次數。執行這個命令的效果就至關於有個手指在你的手機上亂點。

adb shell monkey -p pkgname :同上面效果同樣,只是對指定包名(pkgname)apk進行測試。

monkey -p com.gewara -v 1000

參數說明:-p後跟着軟件所在包名,-v後跟測試的次數)。這裏對該軟件進行1000次的自動化測試,幾分鐘內便可以完成測試。

adb shell monkey -p com.subject.zhongchou -v 10000

 

Monkey高級參數的應用 
4.1.throttle參數:指定事件之間的間隔時間 
adb shell monkey -throttle :milliseconds是時間值 ,單位毫秒 

例:monkey -p com.subject.zhongchou -throttle 2000 100000
4.2.seed參數:僞隨機數生成器的seed 值。 
adb shell monkey -s :若是用相同的 seed 值再次運行 Monkey ,它將生成相同的事件序列。 

列:monkey -p com.subject.zhongchou -s 200 100000
4.3.touch:設置觸摸事件 
adb shell monkey -pct-touch :指定touch事件的百分比percent 

列:monkey -p com.subject.zhongchou -pct-touch 70 100000
4.4.motion:設置動做事件 
adb shell monkey -pct-motion :指定motion事件的百分比percent 

列:monkey -p com.subject.zhongchou -pct-motion 70 100000
4.5.trackball:設置軌跡球事件 
adb shell monkey -pct-trackball :指定軌跡球事件百分比percent 

monkey -p com.subject.zhongchou - pct-trackball 70 100000
4.6.nav:導航事件設置 
adb shell monkey -pct-nav :指定基本導航事件百分比percent 
4.7.majornav:設置主要導航事件 
adb shell monkey -pct-majornav :設定主要導航事件百分比percent,兼容中間鍵,返回鍵,菜單按鍵 
4.8.syskeys:設置事件 
adb shell monkey -pct-syskeys :設定系統事件百分比percent,好比HOME,BACK,撥號及音量調節等事件。 
4.9.appswitch:啓動Activity事件 
adb shell monkey -pct-appswitch :設定啓動activity的事件百分比percent 
4.10.anyevent:不經常使用事件設置 
adb shell monkey -pct-anyevent :設定不經常使用事件地百分比 
4.11.crashes :程序崩潰事件設置 
參數:  –ignore-crashes

用於指定當應用程序崩潰時(Force & Close錯誤),Monkey是否中止運行。若是使用此參數,即便應用程序崩潰,Monkey依然會發送事件,直到事件計數完成。

示例1adb shell monkey -p com.htc.Weather --ignore-crashes 1000

  測試過程當中即便Weather程序崩潰,Monkey依然會繼續發送事件直到事件數目達到1000爲止;

示例2adb shell monkey -p com.htc.Weather 1000

  測試過程當中,若是Weather程序崩潰,Monkey將會中止運行。

 4.12.timeouts:超時事件設置 
adb shell monkey -ignore-timeouts :忽略超時事件 

 

 

參數:  –ignore-timeouts

用於指定當應用程序發生ANRApplication No Responding)錯誤時,Monkey是否中止運行。若是使用此參數,即便應用程序發生ANR錯誤,Monkey依然會發送事件,直到事件計數完成。

ANR:應用無響應

 

參數:  –ignore-security-exceptions

用於指定當應用程序發生許可錯誤時(如證書許可,網絡許可等),Monkey是否中止運行。若是使用此參數,即便應用程序發生許可錯誤,

Monkey依然會發送事件,直到事件計數完成。

參數: –kill-process-after-error

用於指定當應用程序發生錯誤時,是否中止其運行。若是指定此參數,當應用程序發生錯誤時,應用程序中止運行並保持在當前狀態(注意:應用程序僅是靜止在發生錯誤時的狀態,系統並不會結束該應用程序的進程)

 

參數:  –monitor-native-crashes

用於指定是否監視並報告應用程序發生崩潰的本地代碼

參數:  –pct-+事件類別} +事件類別百分比}

用於指定每種類別事件的數目百分比(在Monkey事件序列中,該類事件數目佔總事件數目的百分比)

 參數:使用說明:

示例:–pct-touch +百分比}

調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)

adb shell monkey -p com.htc.Weather –pct-touch 10 1000

–pct-motion +百分比}

調整動做事件的百分比(動做事件由屏幕上某處的一個down事件、一系列的僞隨機事件和一個up事件組成)

adb shell monkey -p com.htc.Weather –pct-motion 20 1000

 

–pct-trackball +百分比}

調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)

adb shell monkey -p com.htc.Weather –pct-trackball 30 1000

 

–pct-nav +百分比}

 調整基本導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)

adb shell monkey -p com.htc.Weather –pct-nav 40 1000

 

–pct-majornav +百分比}

調整主要導航事件的百分比(這些導航事件一般引起圖形界面中的動做,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)

adb shell monkey -p com.htc.Weather –pct-majornav 50 1000

 

–pct-syskeys +百分比}

調整系統按鍵事件的百分比(這些按鍵一般被保留,由系統使用,如HomeBackStart CallEnd Call及音量控制鍵)

adb shell monkey -p com.htc.Weather –pct-syskeys 60 1000

 

–pct-appswitch +百分比}

調整啓動Activity的百分比。在隨機間隔裏,Monkey將執行一個startActivity()調用,做爲最大程度覆蓋包中所有Activity的一種方法

adb shell monkey -p com.htc.Weather –pct-appswitch 70 1000

 

–pct-anyevent +百分比}

調整其它類型事件的百分比。它包羅了全部其它類型的事件,如:按鍵、其它不經常使用的設備按鈕、等等

adb shell monkey -p com.htc.Weather

 

–pct -anyevent 100 1000* 指定多個類型事件的百分比:

adb shell monkey -p com.htc.Weather –pct-anyevent 50 –pct-appswitch 50 1000

注意:各事件類型的百分比總數不能超過100%

 

 

測試語句如:adb -s emulator-5556 shell monkey -p 包名 -v 10000

adb -s emulator-5556 shell monkey -p com.soft0754.android -vvv 10000 > C:/log.txt

-v verbose的縮寫,就是詳細輸出事件等級,這個3v就是輸出等級13的全部事件,而後再使用管道命令將輸出結果放到一個文本里面方便查看.接下來就是看你的程序能不能在這樣的折騰下堅持下去了.

 

實例:adb -s emulator-5556 shell monkey -p 包名 –ignore-crashes –ignore-timeouts –ignore-native-crashes –pct-touch 30 -s 1 -v -v –throttle 200 100000 2 logcat >C:/error.txt 1 logcat>C:/info.txt

 

 

Monkey log分析

(1) 何時會有Log文件的產生 ?

程序異常退出 uncaused exception

程序強制關閉 Force Closed (簡稱FC)

程序無響應 Application No Response (簡稱ANR),通常主線程超過5秒麼有處理就會ANR

手動生成

 

 

拿到一個日誌文件,要分紅多段來看 log文件很長,其中包含十幾個小單元信息,但不要被嚇到 ,事實上他主要由三大塊兒組成 。

1,系統基本信息 ,包括 內存,CPU ,進程隊列 ,虛擬內存 , 垃圾回收等信息 

—— MEMORY INFO (/proc/meminfo) ——
—— CPU INFO (top -n 1 -d 1 -m 30 -t) ——
—— PROCRANK (procrank) ——
—— VIRTUAL MEMORY STATS (/proc/vmstat) ——
—— VMALLOC INFO (/proc/vmallocinfo) ——

2,時間信息 , 也是咱們主要分析的信息 。
—— VMALLOC INFO (/proc/vmallocinfo) ——
—— EVENT INFO (/proc/vmallocinfo) ——

 

 

 

 

3,虛擬機信息 , 包括進程的,線程的跟蹤信息,這是用來跟蹤進程和線程具體點的好地方 。 —— VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2011-01-15 16:49:02) ———— VM TRACES AT LAST ANR (/data/anr/traces.txt: 2011-01-15 16:49:02) ——

相關文章
相關標籤/搜索