07. APP的Monkey壓力測試

一澈蚌、基礎(chǔ)知識

慕課網(wǎng)視頻:http://www.imooc.com/learn/729

1. 為什么要開展壓力測試亦镶?
  • 提高產(chǎn)品的穩(wěn)定性
  • 提高產(chǎn)品的留存率
2. 什么時候開展壓力測試日月?
  • 首輪功能測試通過后
  • 下班后的夜間進行
3. 什么是Monkey?Monkey在哪缤骨?

monkey是發(fā)送偽隨機用戶事件的工具爱咬,就在我們的手機系統(tǒng)里面,但是沒有顯示的icon绊起。

4. 我們用什么來操作monkey呢精拟?
Paste_Image.png
5. 什么是MonkeyScript?

MonkeyScript是一組可以被monkey識別的命令集合
MonkeyScript可以完成重復(fù)固定的操作

6. 什么是MonkeyRunner工具虱歪?

MonkeyRunner提供了一系列的API
MonkeyRunner可以完成模擬事件及截圖操作

7. Monkey和MonkeyRunner的區(qū)別蜂绎?

Monkey:在adb shell中,生成用戶或是系統(tǒng)的偽隨機事件
MonkeyRunner:通過api定義特定命令和事件控制設(shè)備

8. MonkeyRunner都包括哪些APIs呢笋鄙?
  • MonkeyRunner:用來連接設(shè)備或模擬器
  • MonkeyDevice:提供安裝卸載應(yīng)用师枣,發(fā)送模擬事件
  • MonkeyImage:完成圖像保存,及對比操作
9. MonkeyRunner都能測試哪些類型萧落?
  • 多設(shè)備控制
  • 功能測試
  • 回歸測試
10. 壓力測試的結(jié)果:

crash:崩潰
ANR:application not responding

二践美、手機壓力測試步驟:

step1:

在手機開發(fā)者選項中,將usb調(diào)試選上找岖。

step2:

確認手機和電腦已經(jīng)成功連接
cmd中輸入:adb devices陨倡,如果連接成功會顯示手機的序列號,如下

Paste_Image.png

step3:

安裝測試的app
adb install packagename.apk(注意:需要進入apk所在的目錄執(zhí)行命令)

step4:

發(fā)送壓力指令
adb shell monkey 1000
這里的數(shù)字1000是指monkey隨機發(fā)出的1000個指令

step5:

獲取app的包名
adb logcat | grep START (注意:這樣輸入會說grep不是內(nèi)部命令宣增,看下面的解釋)

grep 是linux下的命令玫膀,windows系統(tǒng)可以使用 findstr 替代 grep矛缨〉ⅲ或者執(zhí)行adb shell進入到手機帖旨,在手機系統(tǒng)下,執(zhí)行l(wèi)ogcat | grep START灵妨。android系統(tǒng)是linux的解阅,所以支持grep。

輸入上面的命令后泌霍,如果你想知道哪個app的包名是什么货抄,你就打開哪個app,我打開了魅族手機原帶的計算器朱转,如圖蟹地,這樣我們就知道了計算器的包名。

Paste_Image.png
step6:

給指定的包打壓力
adb shell monkey -p package 1000
比如我用魅族手機原帶的計算器測試藤为,就輸入:adb shell monkey -p com.meizu.flyme.calculator 1000怪与,這樣就對計算器進行了壓力測試。下圖為測試的結(jié)果缅疟,注意標(biāo)紅的部分分别,翻譯過來就是注入了1000個事件,如果這樣顯示說明測試沒用問題存淫,如果那個數(shù)小于你原來輸入的值耘斩,說明有問題。

Paste_Image.png

三桅咆、Monkey高級參數(shù)的應(yīng)用

1.throttle參數(shù):指定事件之間的間隔

adb shell monkey --throttle <延時時間>
比如:adb shell -p com.meizu.flyme.calculator --throttle 1000 100
這是給魅族自帶的計算器執(zhí)行100個事件括授,每1秒一次

2. seed參數(shù):指定隨機生成數(shù)的seed值

adb shell monkey -s<seed> event-count
比如:adb shell monkey -p com.meizu.flyme.calculator -s 100 50

為什么需要seed值,比如我們用monkey發(fā)現(xiàn)了異常岩饼,需要開發(fā)人員處理刽脖,這時我們需要復(fù)現(xiàn)異常。由于monkey的命令是隨機的所以很難復(fù)現(xiàn)忌愚。seed值相當(dāng)于一個標(biāo)示曲管,相同的seed值和相同的事件次數(shù),monkey會執(zhí)行相同的序列操作硕糊,就會復(fù)現(xiàn)問題院水。

3.觸摸事件參數(shù):設(shè)定觸摸事件的百分比

adb shell monkey --pct-touch<percent>

解釋:monkey是隨機事件,現(xiàn)在我們只想讓monkey來操作點擊事件简十,其他的什么滑動事件都不處理檬某,怎么辦?這里就用我們的觸摸事件參數(shù)螟蝙。

Paste_Image.png
4.動作事件:設(shè)定動作事件的百分比

** adb shell monkey --pct-motion<percent>**

解釋:比如我們只想測試三種事件恢恼,那么我們要讓三種事件的百分比加起來為100,如果不等于100胰默,比如等于80场斑,那么剩余的20monkey還是隨機測試漓踢。
下圖就是touch事件50,motion事件30漏隐,這是占比喧半,20%的時間是隨機的。


Paste_Image.png

還有一些命令青责,在課程的4-5節(jié)挺据,需要自己仔細看下。

5.崩潰事件:忽略崩潰和異常

正常情況下脖隶,如果monkey發(fā)現(xiàn)崩潰和異常扁耐,就會停止繼續(xù)操作。為了能讓monkey繼續(xù)執(zhí)行产阱,我們就引入這個參數(shù)做葵。
adb shell monkey --ignore-crashes <event-count>

6.超時事件(ANR):忽略超時事件

adb shell monkey --ignore-timeouts <event-count>

Paste_Image.png

四、CRASH結(jié)果取析:

  • step1:安裝可以一起crash的app
  • step2:執(zhí)行壓力命令
  • step3:析取crash的Execption信息
Paste_Image.png

上圖為ANR的異常信息心墅,同樣crash也會顯示CRASH的一異常信息酿矢。

五、Monkey script:

執(zhí)行monkey腳本的命令怎燥,可以執(zhí)行我們想要的有序命令
adb shell monkey -f <scriptfile> <event-count>

monkey script有許多命令瘫筐,這里不詳細說了,可以看課程的4-9铐姚。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末策肝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子隐绵,更是在濱河造成了極大的恐慌之众,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件依许,死亡現(xiàn)場離奇詭異棺禾,居然都是意外死亡,警方通過查閱死者的電腦和手機峭跳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門膘婶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蛀醉,你說我怎么就攤上這事悬襟。” “怎么了拯刁?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵脊岳,是天一觀的道長。 經(jīng)常有香客問我,道長割捅,這世上最難降的妖魔是什么奶躯? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮棺牧,結(jié)果婚禮上巫糙,老公的妹妹穿的比我還像新娘朗儒。我一直安慰自己颊乘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布醉锄。 她就那樣靜靜地躺著乏悄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恳不。 梳的紋絲不亂的頭發(fā)上檩小,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音烟勋,去河邊找鬼规求。 笑死,一個胖子當(dāng)著我的面吹牛卵惦,可吹牛的內(nèi)容都是我干的阻肿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沮尿,長吁一口氣:“原來是場噩夢啊……” “哼丛塌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起畜疾,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赴邻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后啡捶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姥敛,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年瞎暑,在試婚紗的時候發(fā)現(xiàn)自己被綠了徒溪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡金顿,死狀恐怖臊泌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揍拆,我是刑警寧澤渠概,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響播揪,放射性物質(zhì)發(fā)生泄漏贮喧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一猪狈、第九天 我趴在偏房一處隱蔽的房頂上張望箱沦。 院中可真熱鬧,春花似錦雇庙、人聲如沸谓形。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寒跳。三九已至,卻和暖如春竹椒,著一層夾襖步出監(jiān)牢的瞬間童太,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工胸完, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留书释,地道東北人。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓赊窥,卻偏偏與公主長得像爆惧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子誓琼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 移動APP測試講義 本篇講義主要闡述APP的手工測試要點检激,并概括介紹主流的APP測試框架。 1. APP測試的準(zhǔn)備...
    厲鉚兄閱讀 9,656評論 6 109
  • 手動測試與自動化測試 為了說明這兩個概念腹侣,舉個例子:此時我們要進行一個修改昵稱的操作叔收,我們需要進行手動測試需走一遍...
    王凱巖_KY2閱讀 466評論 0 0
  • Monkey是Android平臺自動化測試的一種手段,可以在模擬器里或?qū)嶋H設(shè)備中運行傲隶,它向系統(tǒng)發(fā)送偽隨機的用戶事件...
    alston123閱讀 5,897評論 1 5
  • Monkey概念介紹 Monkey是猴子的意思饺律。Monkey測試,就像一只猴子跺株,在電腦面前复濒,亂敲鍵盤在測試。猴子什...
    正規(guī)程序員閱讀 3,559評論 0 50
  • 這幾天一直微信群一直被一件事情刷屏者乒省,看后也是讓人非常震驚巧颈!一個31歲的媽媽,在自己生日的前一周袖扛,帶著一個兩歲的男...
    有趣的谷粒閱讀 256評論 0 1