南京正厚軟件技術(shù)培訓(xùn)學(xué)校

7x24小時(shí)咨詢熱線

400-660-3310

當(dāng)前位置 : 好學(xué)校 南京正厚軟件技術(shù)培訓(xùn)學(xué)校 學(xué)習(xí)資訊 資訊詳情

這就是monkey測(cè)試!

2021-01-22

在軟件測(cè)試過程中,我們最能想到的就是按照功能常規(guī)流程操作步驟執(zhí)行,但有很多問題是藏匿在長時(shí)間非常規(guī)測(cè)試操作中。介紹下這種類型測(cè)試的monkey測(cè)試。

1.什么是monkey測(cè)試?

Monkey直譯為‘猴子’,猴子和測(cè)試人員本質(zhì)區(qū)別就是猴子不知道業(yè)務(wù)邏輯,猴子可以理解為完全不懂業(yè)務(wù)知識(shí)也沒有測(cè)試相關(guān)經(jīng)驗(yàn)的的人員,在對(duì)于同樣一個(gè)項(xiàng)目而言,monkey測(cè)試就是對(duì)項(xiàng)目各種無目的事件操作。

2.Monkey測(cè)試原理

monkey向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流,實(shí)現(xiàn)對(duì)正在開發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試

3.Monkey運(yùn)行原理

monkey測(cè)試需要借助monkey工具,monkey工具是Android自帶的一個(gè)工具,使用java語言編寫的,jar包路徑:/system/framework/monkey.jar

圖片

如果要啟動(dòng)monkey.jar則需要運(yùn)行android中的名為“monkey”的Shell腳本,shell腳本存放路徑:/system/bin/monkey

圖片

Monkey的shell腳本需要通過adb命令來執(zhí)行,即通過cmd窗口中,adb shell monkey +命令參數(shù) 來進(jìn)行monkey測(cè)試

4.monkey測(cè)試參數(shù)說明

圖片

a.基礎(chǔ)參數(shù)

1.-p:指定要測(cè)試的包名

說明:如何查看應(yīng)用的包名?

手機(jī)上打開目標(biāo)應(yīng)用:

DOS框中輸入:adb shell dumpsys window|findstr mCurrentFocus

圖片

2.-v :指定輸出日志的級(jí)別,monkey輸出日志有3個(gè)級(jí)別,通過-v參數(shù)來指定:

-v一級(jí)別 僅提供啟動(dòng)提示、測(cè)試完成和最終結(jié)果等少量信息

例:adb shell monkey -p com.tal.kaoyan -v 100

–v –v二級(jí)別提供較為詳細(xì)的日志,包括每個(gè)發(fā)送到Activity的事件信息

例:adb shell monkey -p com.tal.kaoyan -v -v 100

–v –v –v三級(jí)別提供最詳細(xì)的日志

例:adb shell monkey -p com.tal.kaoyan -v -v -v 100

3.-s:用于指定偽隨機(jī)數(shù)生成器的seed值,如果seed相同,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的

注:seed值為monkey日志中的信息

圖片

4.--throttle <毫秒>事件之間插入固定延遲

b.事件類型參數(shù)

Monkey的事件類型總共有11種:

0:點(diǎn)擊事件,即參數(shù)--pct-touch

1:滑動(dòng)事件,即參數(shù)--pct-motion

2:縮放事件,即參數(shù)--pct-pinchzoom

3:軌跡球事件,即參數(shù)--pct-trackball

4:屏幕旋轉(zhuǎn)事件,即參數(shù)--pct-rotation

5:基本導(dǎo)航事件,即參數(shù)--pct-nav

6:主要導(dǎo)航事件,即參數(shù)--pct-majornav

7:系統(tǒng)按鍵事件,即參數(shù)--pct-syskeys

8:Activity啟動(dòng)事件,即參數(shù)--pct-appswitch

9:鍵盤喚出隱藏事件,即參數(shù)--pct-flip

10:其他事件,即參數(shù)--pct-anyevent

下圖是執(zhí)行monkey測(cè)試日志中顯示發(fā)送每類事件的默認(rèn)比例,可設(shè)定某個(gè)事件類型的占比

圖片2

c.調(diào)試參數(shù)

Monkey測(cè)試過程中需要長時(shí)間的對(duì)應(yīng)用發(fā)送事件測(cè)試,很可能測(cè)試時(shí)間不久就因?yàn)榕龅絾栴}而崩潰,此時(shí)測(cè)試停止,而達(dá)不到我們長期測(cè)試的目的,我們需要通過調(diào)試參數(shù)來讓測(cè)試?yán)^續(xù)執(zhí)行就通過調(diào)試參數(shù)告訴monkey在遇到問題的時(shí)候該怎么處理

(1)--ignore-crashes:用于指定當(dāng)應(yīng)用程序崩潰時(shí)Monkey依然運(yùn)行

(2)--ignore-timeouts:應(yīng)用程序發(fā)生任何超時(shí)錯(cuò)誤(如“Application Not responding”對(duì)話框)Monkey依然運(yùn)行

(3)--ignore-security-exceptions   指定應(yīng)用程序發(fā)生許可錯(cuò)誤時(shí)(如證書許可,網(wǎng)絡(luò)許可等),monkey依然運(yùn)行

5.Monkey測(cè)試命令

adb shell monkey –p com.tal.kaoyan  --throttle 100  -s 1606780631055 --pct-touch 70 --ignore-crashes --ignore-timeouts --ignore-security-exception  -v –v –v 864000(發(fā)送事件的次數(shù)) > d:emp\monkey.log

注:

(1)monkey的參數(shù)沒有順序要求,但是隨機(jī)事件數(shù)是一定要放在后的

(1)想要monkey運(yùn)行24小時(shí),每100毫秒發(fā)送一個(gè)事件,則需要發(fā)送的時(shí)間次數(shù)為:24*60*60*1000/100=864000(次)

6.Monkey測(cè)試能發(fā)現(xiàn)的問題:

monkey日志文件中搜索關(guān)鍵字:

(1)程序無響應(yīng),ANR問題:在日志中搜索“ANR” application not responding

(2)崩潰問題:在日志中搜索“CRASH”

(3)其他問題:在日志中搜索”Exception”

收藏
分享到:

相關(guān)課程

相關(guān)資訊

南京正厚軟件技術(shù)培訓(xùn)學(xué)校

南京正厚軟件技術(shù)培訓(xùn)學(xué)校

認(rèn)證等級(jí)

信譽(yù)良好,可安心報(bào)讀

南京正厚軟件技術(shù)培訓(xùn)學(xué)校

已獲好學(xué)校V2信譽(yù)等級(jí)認(rèn)證

信譽(yù)值

  • (60-80)基礎(chǔ)信譽(yù)積累,可放心報(bào)讀
  • (81-90)良好信譽(yù)積累,可持續(xù)信賴
  • (91-100)充分信譽(yù)積累,推薦報(bào)讀

與好學(xué)校簽訂讀書保障協(xié)議:

  • 100%
  • 65
  • 12363
在線咨詢
;