monkey測試的方法與步驟


Monkey的概念:

“猴子測試”是指沒有測試經驗的人甚至對計算機根本不了解的人(就像猴子一樣)不需要知道程序的任何用戶交互方面的知識,如果給他一個程序,他就會針對他看到的界面進行操作,其操作是無目的的、亂點亂按的。

這種測試方式在產品周期中的早期階段會找到很多很好的bug,為用戶節省不少的時間。 

一:Monkey的介紹

它是Android系統自帶一個命令行工具,可以運行在模擬器里或者真是設備中運行。

monkey向系統發送偽隨機的用戶事件流,實現對正在開發的應用程序進行壓力測試。 

monkey包括很多選項,大致四大類:

1.基本配置選項,如設置嘗試的事件數量。

2.運行約束選項,如設置只對單獨的一個包進行測試。

3.事件類型和頻率。

4.調試選項

二:monkey命令特性

不可能使用monkey來指定做一樣測試,重復做很多次。因為monkey產生的是偽隨機的事件流。但是我們可以通過添加命令選項將操作限制在一定的范圍內。

 

一,首先你要先搭建環境

1.先下載jdk   具體安裝流程請參考:https://blog.csdn.net/write6/article/details/79136388

2.再下載sdk  具體安裝流程請參考:https://blog.csdn.net/u011541946/article/details/77142045

 

二,打開手機的開發者調試工具,用usb數據線鏈接你的手機;

三,monkey前的准備命令

1.windows+r 輸入cmd進入dos命令行;

2.輸入adb devices 下面出現類似下圖的組合你就成功了;( 

3.再輸入 adb shell pm list packages    查看你的手機所有的安裝包;輸入 adb shell pm list packages -3 查看手機上所有的第三方安裝包,盡量讓測試機少安裝第三方軟件,這樣可以盡快的找到想要的安裝包名稱;

四,首先用一個最簡單的mokey去試着找哪個是你想要的安裝包名稱:

1./ / -p參數:表示指定測試的程序(空格后面跟安裝包名字,拿剛才的第三方安裝包一個個試)

  / /-v參數:表示查看monkey執行過程的信息(日志級別)(-v 越多越詳細,最多三個)

  / /數字100:表示測試事件數為100

 指定一個包   adb shell monkey  -p  com.tencent.news  -v -v -v  100   (此時指定軟件會被打開並開始亂點亂按)
 指定多個包   adb shell monkey -p com.tencent.news -p com.pdfreader -p com.widgets  -v 1000
 不指定包       adb shell monkey -v 1000

保存日志到指定目錄:

adb shell monkey  -p  com.tencent.news  -v -v -v  100    > d:\xxx.txt

 

 結果如圖: 

Event percentages(事件百分比):

0:觸摸事件百分比,參數--pct-touch

1:滑動事件百分比,參數--pct-motion

2:縮放事件百分比,參數--pct-pinchzoom

3:軌跡球事件百分比,參數--pct-trackball

4:屏幕旋轉事件百分比,參數--pct-rotation

5:暫時不知道這個是什么

6:基本導航事件百分比,參數--pct-nav

7:主要導航事件百分比,參數--pct-majornav

8:系統事件百分比,參數--pct-syskeys

9:Activity啟動事件百分比,參數--pct-appswitch

10:鍵盤翻轉事件百分比,參數--pct-flip

11:其他事件百分比,參數--pct-anyevent

 

2.盡管monkey產生是偽隨機事件流,但是我們希望我們的操作有一定的規律性,即按鍵、觸屏等各類事件操作有所偏重。

eg:(1).對文本框操作,需要更多的按鍵操作。

        (2).玩游戲,需要更多的點擊和滑動操作。

 

3.--throttle  設定兩個事件之間一個固定延遲,可以減緩monkey的執行速度。如果不指定,monkey將不會被延遲,事件將盡可能快地生成和發送消息。單位:毫秒

eg:adb shell monkey  --throttle  3000  -p com.tencent.news  100    

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。

 

4.--pct-touch  (空格后加數字)設定觸屏事件生成的百分比。觸屏事件是一個有手指按下,抬起事件的手勢。

eg:      adb shell monkey   --throttle  3000   --pct-touch  50  -p  com.tencent.news  100 

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。其中設定觸屏的事件占比為50%。

 

5.--pct-motion  設定滑動事件生成的百分比。滑動事件是一個先在某一個位置手指按下,滑動一段距離后再抬起手指的手勢。

eg:       adb shell monkey   --throttle  3000 --pct-motion  50  -p  com.tencent.news  100 

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。其中設定滑動的事件占比為50%。

 

6.--pct-trackball  設定軌跡球事件生成的百分比。軌跡球事件是包含一系列隨機移動和單擊事件的事件

eg:adb shell monkey --throttle  3000 --pct-trackball  50  -p  com.tencent.news  100 

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。其中設定軌跡球的事件占比為50%。

 

7.--pct-nav  設定基本導航事件生成的百分比。基本導航事件是模擬方向性在設備上輸入向上、向下、向左、向右的事件。

eg:adb shell monkey --throttle  3000 --pct-nav  40  -p  com.tencent.news  100 

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。其中設定基本導航事件的占比為40%。

 

8.--pct-majornav  設定主要導航事件生成的百分比。主要導航事件通常會導致UI產生回饋信息,如單擊Back鍵、Home鍵、Menu鍵等、

eg:     adb shell monkey  --throttle  3000   --pct-majornav  40  -p  com.tencent.news  100 

向騰訊新聞發送1000次隨機事件,每次事件間隔為3秒。其中設定主要導航事件的占比為40%。

 

9.--hprof

指定了該參數,Monkey會在發送事件序列的前、后,生成性能分析報告。通常會在data/misc目錄下生成一個5MB左右大小的文件

 

10.--ignore-crashes

通常情況下,monkey會在測試應用程序崩潰或者發生異常后停止運行,若指定了該參數,則monkey將會在產生異常后,繼續向系統發送事件,直到指定事件全部運行完畢。

 

11.--ignore-timeouts

通常情況下,當應用程序發生任何超時錯誤(application  not  responding)時,monkey將停止運行。若指定了該參數,則monkey將會在產生錯誤信息后,繼續向系統發送事件,直到指定事件全部運行完畢

 

12.--ignore-security-exceptions    通常情況下,指定應用程序發生許可錯誤時(如證書許可,網絡許可等),monkey將停止運行。若指定了該參數,即使應用程序發生許可錯誤,monkey會繼續向系統發送事件,直到指定事件全部運行完畢。

eg:adb shell monkey  --throttle  3000 --pct-trackball  50  -p  com.tencent.news  --ignore-security-exceptions  100 

博客出自:https://blog.csdn.net/just__like/article/details/83757492

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM