Android Monkey Test

作為一個(gè)Android開(kāi)發(fā)者,熟悉的自動(dòng)化測(cè)試是十分必要的惑灵。此文主要介紹Android平臺(tái)下的Monkey測(cè)試。

本文地址 http://ihongqiqu.com/2015/12/24/Android-Monkey-Test/ 作者: Zhenguo

Monkey測(cè)試介紹

Monkey測(cè)試是Android平臺(tái)自動(dòng)化測(cè)試的一種手段,通過(guò)Monkey程序模擬用戶(hù)觸摸屏幕、滑動(dòng)Trackball账磺、按鍵等操作來(lái)對(duì)設(shè)備上的程序進(jìn)行壓力測(cè)試,檢測(cè)程序多久的時(shí)間會(huì)發(fā)生異常痊远。

Monkey測(cè)試特點(diǎn)

Monkey測(cè)試的特點(diǎn)主要有以下幾點(diǎn):

  • 可對(duì)MonkeyTest的對(duì)象垮抗,事件數(shù)量,類(lèi)型碧聪,頻率等進(jìn)行設(shè)置冒版。
  • Monky測(cè)試使用的事件流數(shù)據(jù)流是隨機(jī)的,不能進(jìn)行自定義矾削。
  • 測(cè)試的對(duì)象僅為應(yīng)用程序包壤玫,有一定的局限性。

Monkey命令

常規(guī)


-help

作用:列出簡(jiǎn)單的用法
例:<code> adb shell monkey -help </code>


-v 

作用:命令行上的每一個(gè)-v都將增加反饋信息的詳細(xì)級(jí)別哼凯。
Level0(默認(rèn))欲间,除了啟動(dòng)、測(cè)試完成和最終結(jié)果外只提供較少的信息断部。
Level1猎贴,提供了較為詳細(xì)的測(cè)試信息,如逐個(gè)發(fā)送到Activity的事件信息蝴光。
Level2她渴,提供了更多的設(shè)置信息,如測(cè)試中選中或未選中的Activity信息蔑祟。
例:

adb shell monkey -v 10
adb shell monkey -v -v 10
adb shell monkey -v -v -v 10

事件


-s <seed> 

作用:偽隨機(jī)數(shù)生成器的seed值趁耗。如果用相同的seed值再次運(yùn)行monkey,將生成相同的事件序列疆虚。
例:<code> adb shell monkey -s 12345 -v 10 </code>


--throttle <milliseconds> 

作用:在事件之間插入固定的時(shí)間(毫秒)延遲苛败,你可以使用這個(gè)設(shè)置來(lái)減緩Monkey的運(yùn)行速度满葛,如果你不指定這個(gè)參數(shù),則事件之間將沒(méi)有延遲罢屈,事件將以最快的速度生成嘀韧。
例:<code> adb shell monkey --throttle 300 -v 10 </code>

注:常用參數(shù),一般設(shè)置為300毫秒缠捌,原因是實(shí)際用戶(hù)操作的最快300毫秒左右一個(gè)動(dòng)作事件锄贷,所以此處一般設(shè)置為300毫秒。


--pct-touch <percent>

作用:調(diào)整觸摸事件的百分比曼月。(觸摸事件是指在屏幕中的一個(gè)down-up事件谊却,即在屏幕某處按下并抬起的操作)
例:<code> adb shell monkey --pct-touch 100 -v 10 </code>

注:常用參數(shù),此參數(shù)設(shè)置要適應(yīng)當(dāng)前被測(cè)應(yīng)用程序的操作十嘿,比如一個(gè)應(yīng)用80%的操作都是觸摸因惭,那就可以將此參數(shù)的百分比設(shè)置成相應(yīng)較高的百分比。


--pct-motion <percent>

作用:調(diào)整motion事件百分比绩衷。(motion事件是由屏幕上某處一個(gè)down事件蹦魔、一系列偽隨機(jī)的移動(dòng)事件和一個(gè)up事件組成)
例:<code> adb shell monkey --pct-motion 100 -v 10 </code>

注:常用參數(shù),需注意的是移動(dòng)事件是直線滑動(dòng)咳燕,下面的trackball移動(dòng)包含曲線移動(dòng)勿决。

--pct-trackball <percent>

作用:調(diào)整滾動(dòng)球事件百分比。(滾動(dòng)球事件由一個(gè)或多個(gè)隨機(jī)的移動(dòng)事件組成招盲,有時(shí)會(huì)伴隨著點(diǎn)擊事件)
例:<code> adb shell monkey --pct-trackball 100 -v 10 </code>

注:不常使用參數(shù)低缩,現(xiàn)在手機(jī)幾乎沒(méi)有滾動(dòng)球,但滾動(dòng)球事件中包含曲線滑動(dòng)事件曹货,在被測(cè)程序需要曲線滑動(dòng)時(shí)可以選用此參數(shù)咆繁。


--pct-nav <percent>

作用:調(diào)整基本的導(dǎo)航事件百分比。(導(dǎo)航事件由方向輸入設(shè)備的上下左右按鍵所觸發(fā)的事件組成)
例:<code> adb shell monkey --pct-nav 100 -v 10 </code>
注:不常用操作顶籽。


--pct-majornav <percent>

作用:調(diào)整主要導(dǎo)航事件的百分比玩般。(這些導(dǎo)航事件通常會(huì)導(dǎo)致UI界面中的動(dòng)作事件,如5-way鍵盤(pán)的中間鍵礼饱,回退按鍵坏为、菜單按鍵)
例:<code> adb shell monkey --pct-majornav 100 -v 10 </code>


--pct-syskeys <percent>

作用:調(diào)整系統(tǒng)事件百分比。(這些按鍵通常由系統(tǒng)保留使用镊绪,如Home匀伏、Back、Start Call蝴韭、End Call够颠、音量調(diào)節(jié))
例:<code> adb shell monkey --pct-syskeys 100 -v 10 </code>


--pct-appswitch <percent>

作用:調(diào)整Activity啟動(dòng)的百分比。(在隨機(jī)的時(shí)間間隔中榄鉴,Monkey將執(zhí)行一個(gè)startActivity()調(diào)用摧找,作為最大程度覆蓋被測(cè)包中全部Activity的一種方法)
例:<code> adb shell monkey --pct-appswitch 100 -v 5 </code>


--pct-anyevent

作用:調(diào)整其他事件的百分比核行。(這包含所有其他事件牢硅,如按鍵蹬耘、其他在設(shè)備上不常用的按鈕等)
例:<code> adb shell monkey --pct-anyevent 100 -v 5 </code>

約束條件


-p <allowed-package-name>

作用:如果你指定一個(gè)或多個(gè)包,Monkey將只允許訪問(wèn)這些包中的Activity减余。如果你的應(yīng)用程序需要訪問(wèn)這些包(如選擇聯(lián)系人)以外的Activity综苔,你需要指定這些包。如果你不指定任何包位岔,Monkey將允許系統(tǒng)啟動(dòng)所有包的Activity如筛。指定多個(gè)包,使用多個(gè)-p抒抬,一個(gè)-p后面接一個(gè)包名杨刨。
例:<code> adb shell monkey -p com.android.browser -v 10 </code>


-c <main-category>

作用:如果你指定一個(gè)或多個(gè)類(lèi)別,Monkey將只允許系統(tǒng)啟動(dòng)這些指定類(lèi)別中列出的Activity擦剑。如果你不指定任何類(lèi)別妖胀,Monkey將選擇謝列類(lèi)別中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY惠勒。指定多個(gè)類(lèi)別使用多個(gè)-c赚抡,每個(gè)-c指定一個(gè)類(lèi)別惧盹。
例:<code> adb shell monkey -p com.paipai.ershou -v 10 -c </code>


--dbg-no-events

作用:設(shè)置此選項(xiàng)慷蠕,Monkey將執(zhí)行初始啟動(dòng),進(jìn)入一個(gè)測(cè)試Activity羹幸,并不會(huì)在進(jìn)一步生成事件售担。為了得到最佳結(jié)果赁遗,結(jié)合參數(shù)-v,一個(gè)或多個(gè)包的約束族铆,以及一個(gè)保持Monkey運(yùn)行30秒或更長(zhǎng)時(shí)間的非零值岩四,從而提供了一個(gè)可以監(jiān)視應(yīng)用程序所調(diào)用的包之間轉(zhuǎn)換的環(huán)境。


--hprof

作用:設(shè)置此選項(xiàng)骑素,將在Monkey生成事件序列前后生成profilling報(bào)告炫乓。在data/misc路徑下生成大文件(~5Mb),所以要小心使用献丑。


--ignore-crashes

作用:通常末捣,應(yīng)用發(fā)生崩潰或異常時(shí)Monkey會(huì)停止運(yùn)行。如果設(shè)置此項(xiàng)创橄,Monkey將繼續(xù)發(fā)送事件給系統(tǒng)箩做,直到事件計(jì)數(shù)完成。


--ignore-security-exception

作用:通常妥畏,當(dāng)程序發(fā)生許可錯(cuò)誤(例如啟動(dòng)一些需要許可的Activity)導(dǎo)致的異常時(shí)邦邦,Monkey將停止運(yùn)行安吁。設(shè)置此項(xiàng),Monkey將繼續(xù)發(fā)送事件給系統(tǒng)燃辖,直到事件計(jì)數(shù)完成鬼店。


--kill-process-after-error

作用:通常,當(dāng)Monkey由于一個(gè)錯(cuò)誤而停止時(shí)黔龟,出錯(cuò)的應(yīng)用程序?qū)⒗^續(xù)處于運(yùn)行狀態(tài)妇智。設(shè)置此項(xiàng),將會(huì)通知系統(tǒng)停止發(fā)生錯(cuò)誤的進(jìn)程氏身。注意巍棱,正常(成功)的結(jié)束,并沒(méi)有停止啟動(dòng)的進(jìn)程蛋欣,設(shè)備只是在結(jié)束事件之后簡(jiǎn)單的保持在最后的狀態(tài)航徙。


--monitor-native-crashes

作用:監(jiān)視并報(bào)告Andorid系統(tǒng)中本地代碼的崩潰事件。如果設(shè)置--kill-process-after-error陷虎,系統(tǒng)將停止運(yùn)行到踏。


--wait-dbg

作用:停止執(zhí)行中的Monkey,直到有調(diào)試器和它相連接泻红。

記錄測(cè)試日志

保存測(cè)試日志其實(shí)很簡(jiǎn)單夭禽,命令如下:

adb shell monkey -p com.ihongqiqu -v -v -v 500 > monkeytest.txt

本文地址 http://ihongqiqu.com/2015/12/24/Android-Monkey-Test/

Author: Zhenguo Blog: http://ihongqiqu.com/ Email: jinzhenguo1990@gmail.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谊路,隨后出現(xiàn)的幾起案子讹躯,更是在濱河造成了極大的恐慌,老刑警劉巖缠劝,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潮梯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡惨恭,警方通過(guò)查閱死者的電腦和手機(jī)秉馏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脱羡,“玉大人萝究,你說(shuō)我怎么就攤上這事★惫蓿” “怎么了帆竹?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)脓规。 經(jīng)常有香客問(wèn)我栽连,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任秒紧,我火速辦了婚禮绢陌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘熔恢。我一直安慰自己脐湾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布绩聘。 她就那樣靜靜地躺著沥割,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凿菩。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天帜讲,我揣著相機(jī)與錄音衅谷,去河邊找鬼。 笑死似将,一個(gè)胖子當(dāng)著我的面吹牛获黔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播在验,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼玷氏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腋舌?” 一聲冷哼從身側(cè)響起盏触,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎块饺,沒(méi)想到半個(gè)月后赞辩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡授艰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年辨嗽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淮腾。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡糟需,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谷朝,到底是詐尸還是另有隱情洲押,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布徘禁,位于F島的核電站诅诱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏送朱。R本人自食惡果不足惜娘荡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一干旁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炮沐,春花似錦争群、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至翔试,卻和暖如春轻要,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背垦缅。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工冲泥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人壁涎。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓凡恍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親怔球。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嚼酝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容