Android Monkey測(cè)試與分析要點(diǎn)

Monkey測(cè)試的功能

Monkey是內(nèi)置在Androidshell中的命令行工具蚓土。Monkey測(cè)試可以模擬用戶點(diǎn)擊行為,通過腳本的形式不斷地執(zhí)行,然后可以導(dǎo)出到本地日志砂蔽,進(jìn)行奔潰分析。模擬方式是系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流署惯。

Monkey測(cè)試的使用

設(shè)置ADB環(huán)境

{android sdk location}\platform-tools加入環(huán)境變量左驾,以便使用終端執(zhí)行adb命令。

編輯Monkey腳本

基本語法:

$ adb shell monkey [options] <event-count>
monkey腳本格式

腳本示例:

monkey -p com.arisan1000.android  --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --pct-appswitch 30 --pct-touch 15 --pct-motion 50 --pct-anyevent 5 -s 1000 43200 2>/sdcard/error.txt 1>/sdcard/info.txt 
Category Option Description
General? --help 打印簡(jiǎn)單的使用向?qū)?/td>
-v 每個(gè)-v表示增加信息的冗余級(jí)別。默認(rèn)是Level 0诡右,打印啟動(dòng)通知安岂、測(cè)試結(jié)束和最終結(jié)果。Level 1帆吻,提供了較為詳細(xì)的測(cè)試信息域那,如逐個(gè)發(fā)送到Activity的事件信息。Level 2猜煮,提供了更多的設(shè)置信息次员,如測(cè)試中選中或未選中的Activity信息。
Events -s <seed> 指定偽隨機(jī)數(shù)生成器的seed值王带,如果seed相同淑蔚,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的
--throttle <milliseconds> 指定用戶操作(即事件)間的時(shí)延,單位是毫秒愕撰;如果不指定這個(gè)參數(shù)束倍,monkey會(huì)盡可能快的生成和發(fā)送消息。
--pct-touch <percent> 調(diào)整觸摸事件的百分比.(觸摸事件是指在屏幕中的一個(gè)down-up事件盟戏,即在屏幕某處按下并抬起的操作)比如一個(gè)應(yīng)用80%的操作都是觸摸绪妹,那就可以將此參數(shù)的百分比設(shè)置成相應(yīng)較高的百分比。如觸摸返回柿究、觸摸簽到等
--pct-motion <percent> 調(diào)整motion事件百分比邮旷。(motion事件是由屏幕上某處一個(gè)down事件、一系列偽隨機(jī)的移動(dòng)事件和一個(gè)up事件組成)也就是直線滑動(dòng)事件如從左到有滑動(dòng)解鎖
--pct-trackball <percent> 作用:調(diào)整滾動(dòng)球事件百分比蝇摸。(滾動(dòng)球事件由一個(gè)或多個(gè)隨機(jī)的移動(dòng)事件組成婶肩,有時(shí)會(huì)伴隨著點(diǎn)擊事件)如不規(guī)則滑動(dòng)解鎖
--pct-nav <percent> 調(diào)整基本的導(dǎo)航事件(上下左右),事件來自直接的輸入設(shè)備∶蚕Γ現(xiàn)在的設(shè)備一般沒有設(shè)置導(dǎo)航按鈕了律歼。
--pct-majornav <percent> 調(diào)整“主要”導(dǎo)航事件的百分比。 (這些是通常會(huì)導(dǎo)致您的UI中的操作的導(dǎo)航事件啡专,例如5向按鍵中的中心按鈕险毁,后退鍵或菜單鍵。)
--pct-syskeys <percent> 按鍵消息比例们童,主頁畔况、后退、音量增減
--pct-appswitch <percent> 啟動(dòng)Activity的事件比例
--pct-anyevent <percent> 其他不常用的按鍵比例的設(shè)置慧库,不常用
-p <allowed-package-name> 用此參數(shù)指定一個(gè)或多個(gè)包跷跪。指定包之后,monkey將只允許系統(tǒng)啟動(dòng)指定的app齐板。如果不指定包吵瞻,monkey將允許系統(tǒng)啟動(dòng)設(shè)備中的所有app葛菇。
-c <main-category> 指定啟動(dòng)Activity的category。若無指定橡羞,monkey會(huì)選擇帶有Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY的Activity熟呛。使用時(shí),一個(gè)-c指定一個(gè)category尉姨,可以多次使用庵朝。
Debugging --dbg-no-events 指定該選項(xiàng)時(shí),Monkey會(huì)執(zhí)行測(cè)試Activity的初始啟動(dòng)又厉,但不會(huì)生成進(jìn)一步的事件九府。為了獲得更好的結(jié)果,可以結(jié)合 -v選項(xiàng)覆致,一個(gè)或多個(gè)包限制 和 非0的throttle選項(xiàng) (為了保持Monkey運(yùn)行30s或以上)侄旬。這提供了一個(gè)監(jiān)控應(yīng)用調(diào)用的包轉(zhuǎn)換的環(huán)境。
--hprof 測(cè)試完成后生成內(nèi)存快照煌妈,data/misc路徑下生成儡羔,不常用,比較占空間
--ignore-crashes 在monkey測(cè)試的過程中遇到crash不終止monkey進(jìn)程璧诵,直到計(jì)數(shù)結(jié)束汰蜘。
--ignore-timeouts 在monkey測(cè)試的過程中遇到timeout error 或者 ANR 不終止monkey進(jìn)程,直到計(jì)數(shù)結(jié)束之宿。
--ignore-security-exceptions 忽略權(quán)限問題族操,直到事件計(jì)數(shù)結(jié)束。
--kill-process-after-error 當(dāng)發(fā)生錯(cuò)誤時(shí)終止monkey進(jìn)程比被。
--monitor-native-crashes 監(jiān)視崩潰時(shí)的本地代碼色难。當(dāng)設(shè)置 --kill-process-after-error時(shí),monkey進(jìn)程會(huì)停止等缀。
--wait-dbg 當(dāng)調(diào)試器失去連接時(shí)枷莉,停止monkey進(jìn)程。

執(zhí)行和停止腳本

  1. 連接設(shè)備并開啟調(diào)試模式
  2. 執(zhí)行腳本命令:復(fù)制腳本到終端
  3. 回車執(zhí)行停止腳本尺迂,如下:
// 獲取monkey所在的進(jìn)程id
adb shell top | grep monkey
示例結(jié)果:
 5447  0   1% S 10 262960K  10328K  root    com.android.commands.monkey
 5447  0   0% S 10 262960K  10324K  root    com.android.commands.monkey
//徹底停止monkey進(jìn)程
adb shell kill -9 5447

分析本地日志

  1. 找到是monkey里面的哪個(gè)地方出錯(cuò)笤妙。
  2. 查看Monkey里面出錯(cuò)前的一些事件動(dòng)作,并手動(dòng)執(zhí)行該動(dòng)作枪狂。
  3. 若以上步驟還不能找出危喉,可以使用之前執(zhí)行的monkey命令再執(zhí)行一遍宋渔,注意seed值要一樣州疾。

詳情參考Monkey測(cè)試3——Monkey測(cè)試結(jié)果分析

參考

  1. UI/Application Exerciser Monkey

  2. monkey實(shí)戰(zhàn)--測(cè)試步驟、常用參數(shù)皇拣、常規(guī)monkey命令

附錄 A:Linux中的輸入輸出重定向

n> file 表示將文件描述符為 n 的文件重定向到 file严蓖。常見的文件描述符為:

文件描述符 名稱 常用縮寫 默認(rèn)值
0 標(biāo)準(zhǔn)輸入 stdin 鍵盤
1 標(biāo)準(zhǔn)輸出 stdout 屏幕
2 標(biāo)準(zhǔn)錯(cuò)誤輸出 stderr 屏幕

點(diǎn)擊鏈接了解更多

最后編輯于
?著作權(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)離奇詭異哑蔫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)弧呐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門闸迷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人俘枫,你說我怎么就攤上這事腥沽。” “怎么了鸠蚪?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵今阳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我茅信,道長(zhǎng)盾舌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任蘸鲸,我火速辦了婚禮矿筝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘棚贾。我一直安慰自己窖维,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布妙痹。 她就那樣靜靜地躺著铸史,像睡著了一般。 火紅的嫁衣襯著肌膚如雪怯伊。 梳的紋絲不亂的頭發(fā)上琳轿,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音耿芹,去河邊找鬼崭篡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛吧秕,可吹牛的內(nèi)容都是我干的琉闪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼砸彬,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼颠毙!你這毒婦竟也來了斯入?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤蛀蜜,失蹤者是張志新(化名)和其女友劉穎刻两,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(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
  • 文/蒙蒙 一创译、第九天 我趴在偏房一處隱蔽的房頂上張望抵知。 院中可真熱鬧,春花似錦软族、人聲如沸刷喜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掖疮。三九已至,卻和暖如春颗祝,著一層夾襖步出監(jiān)牢的瞬間浊闪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工螺戳, 沒想到剛下飛機(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)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言蹄梢,發(fā)作 oo-boon-too 的音疙筹。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,257評(píng)論 9 467
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,074評(píng)論 25 707
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,159評(píng)論 2 33
  • 夜雨聲起,簌簌的落雨聲擊打著外面的空氣禁炒,穿破了密靜的深夜而咆。還有微微的風(fēng)聲,說實(shí)話我喜歡這樣的雨夜幕袱。 想閉上眼在這美...
    奔跑在山野的閱讀 200評(píng)論 2 2
  • 看到一篇文章 男生沒有寫過情書 女生沒有收過情書他的感情生活是不完整的 在這個(gè)年代暴备,我想要是哪個(gè)男生還在送情書的話...
    你打擾到我學(xué)習(xí)啦閱讀 424評(píng)論 0 1