壓力測試——Monkey

手動測試與自動化測試

為了說明這兩個概念,舉個例子:
此時我們要進(jìn)行一個修改昵稱的操作侯谁,我們需要進(jìn)行手動測試需走一遍事件流程:
1.點(diǎn)擊修改昵稱按鈕
2.輸入框輸入昵稱
3.點(diǎn)擊保存
如果換成自動化測試定硝,那么就要模擬手動測試的“事件流程”疗绣,如圖:

手動測試與自動化測試對照

壓力測試

  • 目的:提高產(chǎn)品的穩(wěn)定性與留存率鳖谈,進(jìn)而增加應(yīng)用的使用率創(chuàng)造更大的價值秩命。
  • 結(jié)果:Crash(崩潰,使用過程中非正常退出)侥加,ANR(應(yīng)用程序無響應(yīng))

Monkey

通過向系統(tǒng)發(fā)送偽隨機(jī)事件流(如按鍵輸入叫潦、觸摸屏輸入、手勢輸入等)隨機(jī)觸發(fā)界面事件來測試應(yīng)用的穩(wěn)定性與健壯性官硝,Android SDK 自帶

Android APP壓力測試的步驟

Step 1.

  • 在手機(jī)開發(fā)者選項中打開USB調(diào)試

Step 2.

  • 確認(rèn)手機(jī)與電腦成功連接,使用命令adb devices查看

Step 3.

  • 安裝測試APP短蜕,使用命令adb install package.apk

Step 4.

  • 獲取APP包名氢架,使用命令adb logcat | grep START,(“ | ”是管道朋魔,將上一個命令的輸出作為下一個命令的輸入岖研,抓取START標(biāo)簽的Log信息)。
  • 輸入命令警检,點(diǎn)Return/Enter孙援,點(diǎn)擊APP,cmp=package_name/即可看見APP包名扇雕。

Step 5.

  • 給指定包“加壓力”拓售,常用命令adb shell monkey -p <package_name> -v <event_count>

常見參數(shù)

1. v參數(shù)

  • 命令行的每增加一個 -v 將增加反饋信息的級別。
  • Level 0( 缺省值 ) 除啟動提示镶奉、測試完成和最終結(jié)果之外础淤,提供較少信息。
  • Level 1 提供較為詳細(xì)的測試信息哨苛,如逐個發(fā)送到 Activity 的事件鸽凶。
  • Level 2 提供更加詳細(xì)的設(shè)置信息,如測試中被選中的或未被選中的 Activity 建峭。

1. throttle參數(shù)

  • 在事件之間插入固定延遲玻侥。通過這個選項可以減緩 Monkey 的執(zhí)行速度。
  • 使用命令adb shell monkey **--throttle <millisecond> **

2. seed參數(shù)

  • 如果出現(xiàn)了Cras亿蒸、ANR等凑兰,設(shè)定 seed 值(數(shù)值隨便設(shè)置)掌桩,使用相同的seed值和事件數(shù)可以復(fù)現(xiàn)這些 bug。
  • 使用命令adb shell monkey** -s <seed> **

3. 觸摸事件

  • 觸摸事件是一個 down-up 事件票摇,它發(fā)生在屏幕上的某單一位置
  • 調(diào)整觸摸事件的百分比使用命令adb shell monkey **--pct-touch <100以內(nèi)正整數(shù)> **

4. 動作事件

  • 動作事件由屏幕上某處的一個 down 事件拘鞋、一系列的偽隨機(jī)事件和一個 up 事件組成。
  • 調(diào)整動作事件的百分比使用命令adb shell monkey **--pct-motion <100以內(nèi)正整數(shù)> **

5. 軌跡事件

  • 軌跡事件由一個或幾個隨機(jī)的移動組成矢门,有時還伴隨有點(diǎn)擊盆色。
  • 調(diào)整軌跡事件的百分比使用命令adb shell monkey **--pct-trackball <100以內(nèi)正整數(shù)> **

6. 基本導(dǎo)航事件

  • 導(dǎo)航事件由來自方向輸入設(shè)備的 up/down/left/right 組成 。
  • 調(diào)整“基本”導(dǎo)航事件的百分比使用命令adb shell monkey **--pct-nav <100以內(nèi)正整數(shù)> **

7. 主要導(dǎo)航事件

  • 這些導(dǎo)航事件通常引發(fā)圖形界面中的動作祟剔,如: 回退按鍵隔躲、菜單按鍵 。
  • 調(diào)整“主要”導(dǎo)航事件的百分比使用命令adb shell monkey **--pct-majornav <100以內(nèi)正整數(shù)> **

8. 系統(tǒng)導(dǎo)航事件

  • 這些按鍵通常被保留物延,由系統(tǒng)使用宣旱,如 Home 、 Back 叛薯、 Start Call 浑吟、 End Call 及音量控制鍵 。
  • 調(diào)整“系統(tǒng)”導(dǎo)航事件的百分比使用命令adb shell monkey **--pct-syskeys <100以內(nèi)正整數(shù)> **

9. 啟動Activity事件

  • 在隨機(jī)間隔里耗溜, Monkey 將執(zhí)行一個 startActivity () 調(diào)用组力,作為最大程度覆蓋包中全部 Activity 。
  • 設(shè)置啟動Activity事件的百分比使用命令adb shell monkey **--pct-appswitch <100以內(nèi)正整數(shù)> **

10. 不常用事件

  • 無法與上述事件劃分到一起抖拴,它包羅了所有其它類型的事件燎字,如:按鍵、其它不常用的設(shè)備按鈕阿宅、等等候衍。
  • 設(shè)置不常用事件的百分比使用命令adb shell monkey **--pct-anyevent <100以內(nèi)正整數(shù)> **

注:各事件的百分比相加為100%

Crash與ANR結(jié)果析取

Crash:崩潰事件
  • 當(dāng)應(yīng)用程序崩潰或發(fā)生任何失控異常時, Monkey 將停止運(yùn)行洒放。
  • 如果使用命令adb shell monkey **--ignore-crashes **蛉鹿, Monkey 將繼續(xù)向系統(tǒng)發(fā)送事件,直到計數(shù)完成往湿。
ANR:用用程序無響應(yīng)榨为,超時
  • 當(dāng)應(yīng)用程序發(fā)生任何超時錯誤 ( ANR對話框 ) 時, Monkey 將停止運(yùn)行煌茴。
  • 如果使用命令adb shell monkey **--ignore-timeouts **随闺, Monkey 將繼續(xù)向系統(tǒng)發(fā)送事件,直到計數(shù)完成蔓腐。
  • 自動測試的時候如果出現(xiàn)ANR矩乐,查看Log信息即可。
  • 手動測試出現(xiàn)ANR,查看信息散罕,可以依次使用如下命令:
  • adb shell
  • cd data/anr/
  • ll traces.txt
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末分歇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子欧漱,更是在濱河造成了極大的恐慌职抡,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件误甚,死亡現(xiàn)場離奇詭異缚甩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)窑邦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門擅威,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冈钦,你說我怎么就攤上這事郊丛。” “怎么了瞧筛?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵厉熟,是天一觀的道長。 經(jīng)常有香客問我较幌,道長揍瑟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任绅络,我火速辦了婚禮,結(jié)果婚禮上嘁字,老公的妹妹穿的比我還像新娘恩急。我一直安慰自己,他們只是感情好纪蜒,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布衷恭。 她就那樣靜靜地躺著,像睡著了一般纯续。 火紅的嫁衣襯著肌膚如雪随珠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天猬错,我揣著相機(jī)與錄音窗看,去河邊找鬼。 笑死倦炒,一個胖子當(dāng)著我的面吹牛显沈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼拉讯,長吁一口氣:“原來是場噩夢啊……” “哼涤浇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起魔慷,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤只锭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后院尔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜻展,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年召边,在試婚紗的時候發(fā)現(xiàn)自己被綠了铺呵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡隧熙,死狀恐怖片挂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贞盯,我是刑警寧澤音念,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站躏敢,受9級特大地震影響闷愤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜件余,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一讥脐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啼器,春花似錦旬渠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至损谦,卻和暖如春岖免,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背照捡。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工颅湘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人栗精。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓栅炒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子赢赊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

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

  • Monkey是一個耳熟能詳?shù)墓ぞ咭依欤灰惶醡onkey很多人會說,我知道释移,能隨機(jī)發(fā)送一些操作命令使其在手機(jī)上執(zhí)行(...
    五娃兒閱讀 459評論 0 2
  • 話不多說叭披,直接寫步驟: 首先,電腦上需要配置有sdk環(huán)境變量和python環(huán)境變量自行百度環(huán)境變量配置方法 pyt...
    mocen_王琪閱讀 619評論 0 1
  • 注意:應(yīng)該是monkey -p your.package.name -v 500 這條命令玩讳,前面沒有adb she...
    Ten_Minutes閱讀 757評論 0 0
  • Monkey是Android SDK自帶的測試工具谈喳,在實(shí)際應(yīng)用中經(jīng)常有公司用來做一些APP的穩(wěn)定性測試希太,由于測試事...
    CC先生之簡書閱讀 8,428評論 0 21
  • 清晨鬓催,小露珠醒了着茸,荷葉媽媽也醒了。小露珠猛地一跳樟澜,轉(zhuǎn)眼間误窖,就落到了溪里。他在溪里遇見了小魚姐姐秩贰、蝌蚪弟弟霹俺、龍蝦哥哥...
    優(yōu)兒悠悠閱讀 479評論 0 2