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

7x24小時咨詢熱線

400-660-3310

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

這就是monkey測試!

2021-01-22

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

1.什么是monkey測試?

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

2.Monkey測試原理

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

3.Monkey運行原理

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

圖片

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

圖片

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

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

圖片

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

1.-p:指定要測試的包名

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

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

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

圖片

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

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

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

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

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

–v –v –v三級別提供最詳細的日志

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

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

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

圖片

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

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

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

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

1:滑動事件,即參數(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啟動事件,即參數(shù)--pct-appswitch

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

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

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

圖片2

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

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

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

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

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

5.Monkey測試命令

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ù)沒有順序要求,但是隨機事件數(shù)是一定要放在后的

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

6.Monkey測試能發(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é)校

認證等級

信譽良好,可安心報讀

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

已獲好學(xué)校V2信譽等級認證

信譽值

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

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

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