monkey的基本用法

對(duì)Android進(jìn)行性能測(cè)試,我想最基本最簡單的就是使用monkey了管嬉。不需要學(xué)習(xí)使用什么工具皂林,更不需要學(xué)習(xí)一門新的語言。而且還能夠給出錯(cuò)誤(crash or ANR)日志蚯撩,將這個(gè)日志給開發(fā)人員看础倍,他們很快就會(huì)定位到問題,非常高效胎挎。實(shí)際測(cè)試中沟启,一般會(huì)在下班以后,讓應(yīng)用跑上一晚上犹菇,第二天直接查看測(cè)試結(jié)果德迹,很高效。但是也有不足揭芍,就是沒有針對(duì)性胳搞。在這里不針對(duì)其優(yōu)缺點(diǎn)進(jìn)行講解,只講用法沼沈。網(wǎng)上給的用法太過于書面和籠統(tǒng),初學(xué)者學(xué)習(xí)起來還是有些吃力币厕,所以我今天列另,盡量少的使用書面用語,直接都是最直接的真實(shí)例子旦装。開始

一页衙、不加限制,隨機(jī)點(diǎn)擊

打開終端阴绢,輸入一下命令:adb shell monkey -p "package name" counts

解釋:package name 是你測(cè)試App對(duì)應(yīng)的package 名字店乐,有了這個(gè)名字monkey才會(huì)在對(duì)應(yīng)的App上進(jìn)行胡亂點(diǎn)擊;counts是你想要monkey點(diǎn)擊的次數(shù)呻袭。這是最簡單的命令眨八,monkey點(diǎn)擊的非常快左电,往往這種情況下會(huì)發(fā)現(xiàn)一些問題廉侧,主要是因?yàn)辄c(diǎn)擊的太快造成的crash页响,實(shí)際使用可以規(guī)避。這時(shí)候可以給開發(fā)人員日志段誊,讓他們判斷。

實(shí)例:adb shell monkey -p com.zywulian.smartlife 1000.

你會(huì)看到測(cè)試的App在飛舞,速度非嘲芫快蹲蒲。

執(zhí)行結(jié)果如圖所示:

從結(jié)果中我們可以看到Events injected:的值和我們?cè)O(shè)定的目標(biāo)1000一樣,說明在測(cè)試過程中沒有出現(xiàn)問題索赏。只是我們這里的樣本很少盼玄,只有1000次,實(shí)際需要設(shè)置更大的數(shù)字進(jìn)行多次測(cè)試参滴。如果次數(shù)少于1000强岸,則說明測(cè)試出現(xiàn)問題,只要將報(bào)錯(cuò)日志截圖或者復(fù)制給開發(fā)人員就好了砾赔。


二蝌箍、給每一次點(diǎn)擊設(shè)置時(shí)間

我們?cè)诘谝徊皆O(shè)置的點(diǎn)擊沒有任何限制,monkey只用了不到6s的時(shí)間就點(diǎn)擊了1000次暴心,和實(shí)際多少是有點(diǎn)不符妓盲。這里我們可以給每次點(diǎn)擊設(shè)置時(shí)間限制,比如每隔0.5s點(diǎn)擊一次专普。命令行如下:

adb shell monkey -p "package name" --throttle "throttle time" counts

解釋:“package name”就是App包的名稱悯衬;“throttle time”就是每次點(diǎn)擊之間間隔的時(shí)間;“counts”還是monkey點(diǎn)擊的次數(shù)檀夹。

實(shí)例:adb shell monkey -p com.zywulian.smartlife --throttle 500 1000

執(zhí)行命令行以后你就會(huì)發(fā)現(xiàn)筋粗,monkey點(diǎn)擊的速度沒有剛才那么快了,還是點(diǎn)擊1000次炸渡,但是每次點(diǎn)擊之間都會(huì)間隔500ms娜亿。執(zhí)行結(jié)果如下圖:

這里我們只關(guān)心執(zhí)行停止以后,執(zhí)行的次數(shù)蚌堵,即Events injected的值买决,如果這個(gè)值和設(shè)置的一樣,則說明沒有報(bào)錯(cuò)吼畏。

三督赤、s參數(shù)

我們知道,monkey猶如一只猴子一樣每次都是隨機(jī)在屏幕上進(jìn)行點(diǎn)擊泻蚊,雖然我們執(zhí)行的是同樣的命令躲舌,但是每次執(zhí)行的結(jié)果可能會(huì)不一樣,這次執(zhí)行crash性雄,但是下一次可能就沒有問題孽糖,所以如果執(zhí)行過程中遇到了問題我們很難重現(xiàn)枯冈。下面講的這個(gè)參數(shù)s(seed),就是為了解決這個(gè)問題使用办悟。有了這個(gè)參數(shù)我們?cè)趫?zhí)行每一次的命令時(shí)尘奏,monkey都會(huì)以相同的步驟進(jìn)行,命令行如下:

adb shell monkey -p com.zywulian.samrtlife -s “seed” 1000

解釋:“seed”就是一個(gè)我們自己設(shè)置的隨機(jī)數(shù)病蛉,既然是隨機(jī)數(shù)炫加,就是我們自己隨機(jī)設(shè)置一個(gè)數(shù)字。

實(shí)例:adb shell monkey -p com.zywulian.smartlife -s 12345 1000

執(zhí)行了這個(gè)命令以后铺然。如果此次測(cè)試有crash俗孝,那么再次執(zhí)行的時(shí)候,crash會(huì)重現(xiàn)魄健,執(zhí)行結(jié)果如下圖:

四赋铝、如果我們希望每次執(zhí)行的步驟是一樣的,但是又希望每次點(diǎn)擊之間的間隔可以由我們自己控制沽瘦,即使用參數(shù)throttle革骨,該怎么操作呢?

如下圖:

五析恋、忽略報(bào)錯(cuò)的執(zhí)行

1良哲、忽略crash

我在開始的時(shí)候,我們通常會(huì)在晚上的時(shí)候使用monkey進(jìn)行測(cè)試助隧,上班的時(shí)候再查看測(cè)試結(jié)果筑凫。但是,剛才所講的都無法實(shí)現(xiàn)并村,因?yàn)橐坏﹎onkey測(cè)試出現(xiàn)crash或者ANR巍实,則monkey自動(dòng)退出。設(shè)想一下哩牍,我們?cè)谙掳嗲霸O(shè)定了一個(gè)100000次的隨機(jī)用戶事件棚潦,結(jié)果人剛離開公司,測(cè)試遇到問題停止了姐叁,測(cè)試才測(cè)試了5000次瓦盛,這樣豈不是很郁悶洗显,而且每次都只能發(fā)現(xiàn)一個(gè)問題外潜,是不是有點(diǎn)麻煩。monkey提供了一個(gè)方法是可以忽略crash挠唆,繼續(xù)測(cè)試处窥。這個(gè)參數(shù)就是:--ignore-crashes。

用法舉例如下:

adb shell monkey -p com.zywulian.smartlife --ignore-crashes 100000

這樣我們就可以放心的進(jìn)行測(cè)試玄组,就算遇到crash滔驾,monkey也會(huì)一直執(zhí)行下去直到隨機(jī)事件執(zhí)行完畢谒麦。如圖:

2、忽略響應(yīng)超時(shí)

有時(shí)候哆致,我們的App對(duì)響應(yīng)時(shí)間做了限制绕德,比如我們公司的App,如果一個(gè)按鈕點(diǎn)擊以后500ms內(nèi)沒有響應(yīng)就會(huì)拋出異常摊阀,所以這種情況也是我們測(cè)試的時(shí)候需要側(cè)重的耻蛇,為的是提高用戶體驗(yàn)。

用法舉例如下:

adb shell monkey -p com.zywulian.smartlife --ignore-timeouts 100000.

執(zhí)行結(jié)果如下圖胞此,注意看下圖臣咖,這次的操作我們發(fā)現(xiàn)了一個(gè)crash,測(cè)試這么久終于發(fā)現(xiàn)了一個(gè)crash漱牵,直接把這個(gè)crash信息復(fù)制給開發(fā)人員看就可以了:

在終端使用快捷鍵command+F就會(huì)出現(xiàn)搜索框夺蛇,輸入crash或者ANR,就會(huì)搜索出所有測(cè)試出來的crash或者ANR酣胀,直接enter鍵就可以一一查看刁赦。

補(bǔ)充:用了monkey一直都沒有考慮一個(gè)問題,該如何停止正在運(yùn)行中的monkey進(jìn)程灵临。今天在測(cè)試過程中出現(xiàn)一個(gè)情況就是:App被monkey給退出了截型,需要輸入正確的賬號(hào)和密碼才能登入App繼續(xù)測(cè)試,可是monkey只會(huì)像孩童一樣胡亂操作儒溉,哪里又能輸入正確的賬號(hào)密碼宦焦?之間屏幕一直提示賬號(hào)或者密碼錯(cuò)誤,一直這樣下去也不是辦法啊顿涣,怎么停下來呢波闹?拔掉數(shù)據(jù)線?不行L伪>椤!

方法:重起一個(gè)終端窗口蒲障,輸入命令:adb shell ?ps | ?grep monkey

然后會(huì)得出幾個(gè)數(shù)字歹篓,這里我們只需要第一個(gè)數(shù)字。然后再輸入命令:adb shell kill 第一個(gè)數(shù)字揉阎。monkey就被停止了庄撮,上圖:

這樣monkey就被停止了,monkey再也不能隨心所欲了毙籽。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洞斯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坑赡,更是在濱河造成了極大的恐慌烙如,老刑警劉巖么抗,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亚铁,居然都是意外死亡蝇刀,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門徘溢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熊泵,“玉大人,你說我怎么就攤上這事甸昏⊥绶郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵施蜜,是天一觀的道長卒蘸。 經(jīng)常有香客問我,道長翻默,這世上最難降的妖魔是什么缸沃? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮修械,結(jié)果婚禮上趾牧,老公的妹妹穿的比我還像新娘。我一直安慰自己肯污,他們只是感情好翘单,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹦渣,像睡著了一般哄芜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柬唯,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天认臊,我揣著相機(jī)與錄音,去河邊找鬼锄奢。 笑死失晴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拘央。 我是一名探鬼主播涂屁,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼堪滨!你這毒婦竟也來了胯陋?” 一聲冷哼從身側(cè)響起蕊温,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤袱箱,失蹤者是張志新(化名)和其女友劉穎遏乔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體发笔,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡盟萨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了了讨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捻激。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖前计,靈堂內(nèi)的尸體忽然破棺而出胞谭,到底是詐尸還是另有隱情,我是刑警寧澤男杈,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布丈屹,位于F島的核電站,受9級(jí)特大地震影響伶棒,放射性物質(zhì)發(fā)生泄漏旺垒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一肤无、第九天 我趴在偏房一處隱蔽的房頂上張望先蒋。 院中可真熱鬧,春花似錦宛渐、人聲如沸竞漾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽畴蹭。三九已至,卻和暖如春鳍烁,著一層夾襖步出監(jiān)牢的瞬間叨襟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工幔荒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留糊闽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓爹梁,卻偏偏與公主長得像右犹,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子姚垃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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