2018-04-12 Android系統(tǒng)-monkey指令

一、Monkey簡(jiǎn)介:

Monkey是Android SDK提供的一個(gè)命令行工具迅矛,可運(yùn)行在任一版本上的模擬器里或真機(jī)上节腐。Monkey可發(fā)送偽隨機(jī)的用戶(hù)事件流,適合對(duì)應(yīng)用進(jìn)行壓力測(cè)試英岭;只針對(duì)Activity做測(cè)試,不能對(duì)Service做測(cè)試湿右。

二谈为、質(zhì)量要求:

版本release(發(fā)布)前,Monkey跑出來(lái)的結(jié)果中crash要為0掷空,final release前宅倒,Monkey跑完的總次數(shù)應(yīng)為25W,結(jié)果里不允許有nullPointException出現(xiàn)丈莺。

三划煮、常用命令參數(shù)


1)? -p? 應(yīng)用包名

用于約束限制,用此參數(shù)指定一個(gè)或者多個(gè)包缔俄,指定包之后弛秋,monkey將只允許啟動(dòng)指定app,如果不指定包俐载,monkey將啟動(dòng)系統(tǒng)中所有的app 蟹略。

例:指定一個(gè)包 ? ? monkey -p com.htc.weather -v 1000

? ? ? ? 指定多個(gè)包 ? ??monkey -p com.htc.weather?-p com.htc.pdfreader -p com.htc.photo.widgets -v 1000

? ? ? ? 不指定包 ? ? ? ???monkey -v 1000

2)-v

Monkey的日志輸出有3個(gè)級(jí)別:默認(rèn)的是level 0, -v -v日志級(jí)別為level 1遏佣, -v -v -v日志級(jí)別為level 2挖炬。日志的級(jí)別越高,越詳細(xì)状婶。為了方便問(wèn)題的定位意敛,將日志級(jí)別設(shè)置為level2。?

3) -s

指定偽隨機(jī)數(shù)生成器的seed值膛虫,如果seed相同草姻,則兩次monkey 測(cè)試產(chǎn)生的事件序列也相同。

例: monkey -p com.htc.weather -s 35 -v 1000

4) --throttle? (毫秒)

指定操作之間的時(shí)間間隔稍刀,一方面是希望能更接近用戶(hù)的操作場(chǎng)景撩独,正常用戶(hù)操作都會(huì)有一定的時(shí)間間隔;另一方面也是不希望因?yàn)檫^(guò)于頻繁的操作而導(dǎo)致系統(tǒng)崩潰,尤其是在比較低端的手機(jī)上執(zhí)行測(cè)試時(shí)跌榔。因此通過(guò)–throttle設(shè)置Monkey每個(gè)操作固定延遲0.5秒异雁。?

5) --pct-xxx

觸摸事件和手勢(shì)事件是用戶(hù)最常見(jiàn)的操作,所以通過(guò)–pct-touch和–pct-motion將這兩個(gè)事件的占比調(diào)整到40%與25%僧须;?

目標(biāo)應(yīng)用包含了多個(gè)Activity纲刀,為了能覆蓋大部分的Activity,所以通過(guò)–pct-appswitch將Activity切換的事件占比調(diào)整到10%担平;?

被測(cè)應(yīng)用之前在測(cè)試中出現(xiàn)過(guò)不少橫豎屏之間切換的問(wèn)題示绊,這個(gè)場(chǎng)景也必須關(guān)注,因此通過(guò)–pct-rotation把橫豎屏切換事件調(diào)整到10%暂论;?

通過(guò)–pct-majornav面褐,調(diào)整“主要”導(dǎo)航事件的百分比調(diào)整到10%(這些導(dǎo)航事件通常引發(fā)圖形界面中的動(dòng)作,如:5-way鍵盤(pán)的中間按鍵取胎、回退按鍵展哭、菜單按鍵)。

注意: 各類(lèi)事件的百分比總和不能超過(guò)100%

6)?--ignore-xxx

運(yùn)行中忽略項(xiàng)闻蛀,設(shè)置后遇到該類(lèi)問(wèn)題將繼續(xù)執(zhí)行monkey指令匪傍;未設(shè)置則會(huì)停止monkey指令。

? ?--ignore-crashes:忽略崩潰

? 通常觉痛,應(yīng)用發(fā)生崩潰或異常時(shí)Monkey會(huì)停止運(yùn)行役衡。如果設(shè)置此項(xiàng),Monkey將繼續(xù)發(fā)送事件給系統(tǒng)薪棒,直到事件計(jì)數(shù)完成手蝎。

? ?--ignore-timeouts:忽略超時(shí)

設(shè)置此項(xiàng)后,當(dāng)應(yīng)用程序發(fā)生任何超時(shí)錯(cuò)誤(如ANR俐芯,即Application Not Responding)時(shí)棵介,monkey將繼續(xù)運(yùn)行直到計(jì)數(shù)完成。如果不設(shè)置此項(xiàng)泼各,monkey遇到此類(lèi)超時(shí)將停止運(yùn)行

--ignore-security-exceptions:忽略安全異常

通常鞍时,當(dāng)程序發(fā)生許可錯(cuò)誤(例如啟動(dòng)一些需要許可的Activity)導(dǎo)致的異常時(shí),Monkey將停止運(yùn)行扣蜻。設(shè)置此項(xiàng),Monkey將繼續(xù)發(fā)送事件給系統(tǒng)及塘,直到事件計(jì)數(shù)完成莽使。

--ignore-native-crashes:忽略本地代碼導(dǎo)致的崩潰

設(shè)置忽略后,Monkey將執(zhí)行完所有的事件笙僚,不會(huì)因此停止

7) 其他

--monitor-native-crashes:用于指定是否監(jiān)視并報(bào)告應(yīng)用程序發(fā)生崩潰的本地代碼

--kill-process-after-error:用于指定當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí)芳肌,是否停止其運(yùn)行。如果指定此參數(shù),當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí)亿笤,應(yīng)用程序停止運(yùn)行并保持在當(dāng)前狀態(tài)翎迁。(注意:應(yīng)用程序僅是靜止在發(fā)生錯(cuò)誤時(shí)的狀態(tài),系統(tǒng)并不會(huì)結(jié)束該應(yīng)用程序的進(jìn)程)

–hprof:

使用–hprof在出現(xiàn)內(nèi)存問(wèn)題時(shí)净薛,存儲(chǔ)一份內(nèi)存“快照”


四汪榔、實(shí)操流程

1.獲取應(yīng)用包名

1).adb logcat | find "包名關(guān)鍵字" 或其他指令

2).adb shell pm list packages -3? 顯示所有第三方應(yīng)用

2.連接真機(jī),執(zhí)行adb devices肃拜,確認(rèn)連接成功.

3.執(zhí)行monkey指令

4.同時(shí)獲取更多信息

1)記錄logcat日志信息:?

adb shell logcat -v time > logcat.txt?

2)獲取內(nèi)存信息:?

adb shell dumpsys meminfo?$package_name or?$pid?

3)獲取CPU信息:?

adb shell top -n 1 |findstr?$package_name or?$pid?

4)獲取電量信息:?

adb shell dumpsys battery?

5)獲取GPU信息:?

GPU信息命令:adb shell dumpsys gfxinfo?$package_name or?$pid?

要獲取GPU信息痴腌,在“開(kāi)發(fā)者選項(xiàng)”中打開(kāi)“GPU呈現(xiàn)模式分析”,如圖3所示:

圖3 GPU呈現(xiàn)模式分析

6)獲取流量信息:?

adb shell cat/proc/uid_stat/$uid/tcp_rcv?

adb shell cat/proc/uid_stat/$uid/tcp_snd

4.分析log

一般的測(cè)試結(jié)果分析:

1)燃领、 ANR問(wèn)題:在日志中搜索“ANR”

2)士聪、崩潰問(wèn)題:在日志中搜索“Exception”??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猛蔽,隨后出現(xiàn)的幾起案子剥悟,更是在濱河造成了極大的恐慌,老刑警劉巖曼库,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件区岗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡凉泄,警方通過(guò)查閱死者的電腦和手機(jī)躏尉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)后众,“玉大人胀糜,你說(shuō)我怎么就攤上這事〉儆” “怎么了教藻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)右锨。 經(jīng)常有香客問(wèn)我括堤,道長(zhǎng),這世上最難降的妖魔是什么绍移? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任悄窃,我火速辦了婚禮,結(jié)果婚禮上蹂窖,老公的妹妹穿的比我還像新娘轧抗。我一直安慰自己,他們只是感情好瞬测,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布横媚。 她就那樣靜靜地躺著纠炮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪灯蝴。 梳的紋絲不亂的頭發(fā)上恢口,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音穷躁,去河邊找鬼耕肩。 笑死,一個(gè)胖子當(dāng)著我的面吹牛折砸,可吹牛的內(nèi)容都是我干的看疗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睦授,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼两芳!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起去枷,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤怖辆,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后删顶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體竖螃,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年逗余,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了特咆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡录粱,死狀恐怖腻格,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啥繁,我是刑警寧澤菜职,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站旗闽,受9級(jí)特大地震影響酬核,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜适室,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一嫡意、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捣辆,春花似錦鹅很、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至整袁,卻和暖如春菠齿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坐昙。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工绳匀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸客。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓疾棵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親痹仙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子是尔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

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