Monkey系列之02--命令詳解


本文主要介紹Monkey的相關命令,具體Monkey的操作俯萌,詳見本系列的第一篇文章

1果录、包名指定:

可以指定一個,可以指定多個咐熙,也可以不指定弱恒,隨機去操作

不指定包名:adb shell monkey ? -v 500 ?>F:/monkeylog2018.txt,隨機500個事件執(zhí)行棋恼,沒有具體的包返弹,在手機上隨機操作各種app或系統(tǒng)功能,下圖日志里爪飘,using了各種app的activity义起,相當于是對整機進行測試

不指定包

指定一個包名的命令:adb shell monkey -p com.aaa.aaaaaaaa ?-v 500 >F:/monkeylog2018.txt,直接對aaa這個app進行500次隨機事件并寫入txt

指定多個包名的命令:adb shell monkey -p com.aaa.aaaaaaaa ?-p com.bbb.bbbbb -v 500 >F:/monkeylog2018.txt ?兩次指定兩個包名师崎,合計執(zhí)行500次隨機事件默终,寫入日志文檔。在log里可以看到using兩個activity

指定兩個包

2、日志級別:

分為Level0-Level2三個級別齐蔽,0僅提供啟動提示两疚、測試完成和最終結果等少量信息,1提供較為詳細的日志肴熏,包括每個發(fā)送到Activity的事件信息鬼雀,2最詳細的日志,包括了測試中選中/未選中的Activity信息蛙吏。用-v表示源哩,想用幾級就指定幾個-v

Level0:adb shell monkey ? -v 500 ?>F:/monkeylog2018.txt

Level1:adb shell monkey ? -v ?-v ?500 ?>F:/monkeylog2018.txt

Level2:adb shell monkey ? -v ?-v ?-v ?500 ?>F:/monkeylog2018.txt

上圖也是level2級別的日志效果,會詳細顯示哪些包被using了鸦做,哪些被拒絕using了励烦,如果是0級別的,則看不到這些信息

3泼诱、SEED值:

用于指定偽隨機數(shù)生成器的seed值坛掠,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的治筒,用-s參數(shù)屉栓。

Monkey測試1:adb shell monkey -p com.htc.Weather –s 10 100

Monkey測試2:adb shell monkey -p com.htc.Weather –s 10 100

-s 10 前后兩條命令相同,那么其隨機的內容也是相同的耸袜,這樣可以在對比測試的時候用到

4友多、時延控制:

用于指定用戶操作間的時延,單位是毫秒堤框,用--throttle參數(shù)域滥,注意是兩個減號

adb shell monkey -p com.huawei.Weather –throttle 3000 100,此命令是隨機100次事件蜈抓,但是每次需要延遲3秒做下一個動作启绰,這樣可以給app留有響應時間,連網時間沟使,加載時間委可,否則事件發(fā)送太快,來不及響應就要執(zhí)行下一個事件腊嗡,會導致結果不準確着倾,類似LR里面的思考時間

上面的命令執(zhí)行后,在日志里會看到這樣的記錄:Sleeping for 3000 milliseconds叽唱,同時在手機界面上也會有直觀的感應屈呕,各種點擊操作都會有3秒的延時

5、忽略執(zhí)行:

--ignore-crashes:

忽略崩潰:用于指定當應用程序崩潰時(Force & Close錯誤)棺亭,Monkey是否停止運行虎眨。如果使用此參數(shù),即使應用程序崩潰,Monkey依然會發(fā)送事件,直到事件計數(shù)完成嗽桩。

示例1:adb shell monkey -p com.huawei.Weather --ignore-crashes 1000 ? ? 測試過程中即使Weather程序崩潰岳守,Monkey依然會繼續(xù)發(fā)送事件直到事件數(shù)目達到1000為止;

示例2:adb shell monkey -p com.huawei.Weather 1000 ? ? ?測試過程中碌冶,如果Weather程序崩潰湿痢,Monkey將會停止運行。

--ignore-timeouts:

忽略超時:用于指定當應用程序發(fā)生ANR(Application No Responding)錯誤時扑庞,Monkey是否停止運行譬重。如果使用此參數(shù),即使應用程序發(fā)生ANR錯誤罐氨,Monkey依然會發(fā)送事件臀规,直到事件計數(shù)完成。adb shell monkey -p com.huawei.Weather --ignore-timeouts 1000

--ignore-security-exceptions:

忽略安全異常:用于指定當應用程序發(fā)生許可錯誤時(如證書許可栅隐,網絡許可等)塔嬉,Monkey是否停止運行。如果使用此參數(shù)租悄,即使應用程序發(fā)生許可錯誤谨究,Monkey依然會發(fā)送事件,直到事件計數(shù)完成泣棋。adb shell monkey -p com.huawei.Weather --ignore-security-exceptions 1000

--kill-process-after-error:

發(fā)生錯誤后直接殺掉進程:用于指定當應用程序發(fā)生錯誤時胶哲,是否停止其運行。如果指定此參數(shù)外傅,當應用程序發(fā)生錯誤時纪吮,應用程序停止運行并保持在當前狀態(tài)(注意:應用程序僅是靜止在發(fā)生錯誤時的狀態(tài)俩檬,系統(tǒng)并不會結束該應用程序的進程)萎胰。adb shell monkey -p com.huawei.Weather?--kill-process-after-error?1000

--monitor-native-crashes:

跟蹤本地方法崩潰問題:用于指定是否監(jiān)視并報告應用程序發(fā)生崩潰的本地代碼,adb shell monkey -p com.huawei.Weather?--kill-process-after-error ?--monitor-native-crashes 1000

6棚辽、指定事件百分比:

用于指定每種類別事件的數(shù)目百分比(在Monkey事件序列中技竟,該類事件數(shù)目占總事件數(shù)目的百分比),雖然事件是隨機的屈藐,但是你可以指定其中某種動作的比例榔组,根據(jù)app的特點而進行設置,某些app滑動多联逻,某些app點擊多搓扯,這樣可以更貼近app應用場景的設置隨機事件進行測試

--pct-{+事件類別} {+事件類別百分比}:

--pct-touch {+百分比}:觸摸事件:adb shell monkey -p com.huawei.Weather --pct-touch 10 1000

--pct-motion {+百分比}:動作事件:adb shell monkey -p com.huawei.Weather --pct-motion10 1000

--pct-trackball {+百分比}:軌跡事件:adb shell monkey -p com.huawei.Weather --pct-trackball?10 1000

--pct-nav {+百分比}:基本導航:adb shell monkey -p com.huawei.Weather --pct-nav?10 1000

--pct-majornav {+百分比}:主要導航:adb shell monkey -p com.huawei.Weather --pct-majornav?10 1000

--pct-syskeys {+百分比}:系統(tǒng)按鍵:adb shell monkey -p com.huawei.Weather --pct-syskeys?10 1000

--pct-appswitch {+百分比}:啟動activity(日志里見過這個switch吧):adb shell monkey -p com.huawei.Weather --pct-appswitch? 10 1000

--pct-anyevent {+百分比}:其他事件:

指定單個類型事件的百分比:

adb shell monkey -p com.huawei.Weather --pct -anyevent 20 ?1000

指定多個類型事件的百分比:

adb shell monkey -p com.huawei.Weather --pct-anyevent 30 ?--pct-appswitch 30 ? 1000

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

總結:

本文中所舉的栗子都是單個參數(shù)的命令,實際使用過程中包归,大部分是組合命令锨推,比如指定包,日志級別,忽略報錯等參與組合放在一條命令里執(zhí)行的

adb shell monkey -p com.aaa.aaaaa -v -v -v --throttle 500 --pct-anyevent 100 5000 >F:/monkeylog.txt

adb shell monkey -p com.aaa.aaaaa -s 23? --throttle 2000 --ignore-crashes --ignore-timeouts -v -v -v 100000 >F:/monkeylog.txt

Monkey架構圖



最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末换可,一起剝皮案震驚了整個濱河市椎椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沾鳄,老刑警劉巖慨飘,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異译荞,居然都是意外死亡瓤的,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門吞歼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來堤瘤,“玉大人,你說我怎么就攤上這事浆熔”痉” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵医增,是天一觀的道長慎皱。 經常有香客問我,道長叶骨,這世上最難降的妖魔是什么茫多? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮忽刽,結果婚禮上天揖,老公的妹妹穿的比我還像新娘。我一直安慰自己跪帝,他們只是感情好今膊,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著伞剑,像睡著了一般斑唬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上黎泣,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天恕刘,我揣著相機與錄音,去河邊找鬼抒倚。 笑死褐着,一個胖子當著我的面吹牛,可吹牛的內容都是我干的托呕。 我是一名探鬼主播含蓉,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼洋访,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了谴餐?” 一聲冷哼從身側響起姻政,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岂嗓,沒想到半個月后汁展,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厌殉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年食绿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片公罕。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡器紧,死狀恐怖,靈堂內的尸體忽然破棺而出楼眷,到底是詐尸還是另有隱情铲汪,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布罐柳,位于F島的核電站掌腰,受9級特大地震影響,放射性物質發(fā)生泄漏张吉。R本人自食惡果不足惜齿梁,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肮蛹。 院中可真熱鬧勺择,春花似錦、人聲如沸伦忠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缓苛。三九已至芳撒,卻和暖如春邓深,著一層夾襖步出監(jiān)牢的瞬間未桥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工芥备, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冬耿,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓萌壳,卻偏偏與公主長得像亦镶,于是被迫代替她去往敵國和親日月。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容