money查詢

Andukr發表於2020-11-29

Monkey介紹
通過Monkey程式模擬使用者觸控螢幕,滑動Trackball,按鍵等操作來對裝置上的程式進行壓力測試,檢測程式錯就的時間會發生異常

Monkey用來做什麼
Monkey主要用於Android的壓力測試,自動的一個壓力測試小工具,主要目的就是為了測試app是否會Crash(崩潰)

Monkey程式介紹
(1) Monkey程式由Android系統自帶,使用Java語言寫成,在Android檔案系統中的存放路徑是: /system/framework/monkey.jar
(2) Monkey.jar程式是由一個名為“monkey”的Shell指令碼來啟動執行,shell指令碼在Android檔案系統中 的存放路徑是:/system/bin/monkey
(3)Monkey 命令啟動方式:
可以通過PC機CMD視窗中執行: adb shell monkey {+命令引數}來進行Monkey測試
在PC上adb shell 進入Android系統,通過執行 monkey {+命令引數} 來進行Monkey 測試
在Android機或者模擬器上直接執行monkey 命令,可以在Android機上安裝Android終端模擬器

Monkey命令
1)執行monkey測試裝置中所有app100次
adb shell monkey 100
在這裡插入圖片描述

2)執行monkey測試裝置中所有app1000次輸出到33.txt
adb shell monkey 1000 >D:\log\33.txt
在這裡插入圖片描述
在這裡插入圖片描述

3)執行monkey測試指定app
adb shell monkey -p 包名 測試次數

例如:
執行monkey測試應用百度10000次
adb shell monkey -p com.baidu.searchbox 10000

在這裡插入圖片描述

4)顯示日誌詳細程度

日誌僅提供啟動提示,測試完成和最終結果的少量資訊
adb shell monkey -p com.baidu.searchbox 1000 -v

日誌較為詳細,包括每個傳送到Activity的事件資訊
adb shell monkey -p com.baidu.searchbox 1000 -v -v

最詳細的日誌,包括測試中選中/未選中的Activity資訊
adb shell monkey -p com.baidu.searchbox 1000 -v -v -v

5)將log資訊輸出到文件中
adb shell monkey -p com.baidu.searchbox 10000 -v-v-v >D:\log\888.txt

6)

忽略崩潰:–ignore-crashes

應用發生崩潰或異常時Monkey會停止執行
設定–ignore(忽略)-crashes(崩潰)將忽略崩潰或異常繼續傳送事件給系統,直到事件計數完成

執行monkey測試10000次忽略異常輸出到44.txt
adb shell monkey --ignore-crashes 10000 >D:\log\44.txt
在這裡插入圖片描述

在這裡插入圖片描述

7)

忽略超時:–ignore-timeouts

應用程式發生任何超時錯誤(如:Application Not responding)Monkey會停止執行
設定 --ignore-timeouts(超時)忽略超時錯誤將繼續傳送事件給系統,直到事件計數完成
adb shell monkey --ignore-timeouts 1000 >D:\log\7979.txt
在這裡插入圖片描述

8)

隨機數:-s

https://blog.csdn.net/u011436666/article/details/53998332[Monkey隨機數種子事件]
隨機數種子,用於指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的(經常用到bug的復現上)
adb shell monkey -s 26 -v 200 >D:\log\123.txt

在這裡插入圖片描述

adb shell monkey -v -s 26 200 >D:\log\456.txt
在這裡插入圖片描述

9)

時延:–throttle(毫秒)

用於指定操作事件間的時延,單位是毫秒,如果不指定這個引數,monkey會盡可能快的生成和傳送訊息
adb shell monkey -p com.baidu.searchbox --throttle 300 -v 100在這裡插入圖片描述
10)

觸控事件: --pct-touch 佔比數

調整觸控事件百分比(觸控事件是指在螢幕中的一個down-up事件,即在螢幕某處按下並抬起的操作)
執行10個偽隨機使用者事件流,並調整其中觸控事件的百分比為80%
adb shell monkey --pct-touch 80 -v 100 >D:\log\11.txt
在這裡插入圖片描述

在這裡插入圖片描述

11)

手勢事件: --pct-motion 佔比數

調整motion事件百分比(motion事件是由螢幕上某處一個down事件、一系列偽隨機的移動事件和一個up事件組成)
adb shell monkey --pct-motion 70 -v 100 >D:\log\99.txt

在這裡插入圖片描述

在這裡插入圖片描述

0:–pct-touch//touch
events percentage觸控事件百分比(觸控事件是一個在螢幕單一位置的按下-抬起事件)

1:–pct-motion//motion
events percentage手勢事件百分比(手勢事件是由一個在螢幕某處的按下事件、一系列的偽隨機移動、一個抬起事件組成)即一個滑動操作,但是是直線的,不能拐彎

2:–pct-pinchzoom//pinch
zoom events percentage二指縮放百分比,即智慧機上的放大縮小手勢操作

3:–pct-trackball//trackball 即單純的Move(ACTION_MOVE)
events percentage軌跡球事件百分比(軌跡球事件包括一個或多個隨機移動,有時還伴有點選。軌跡球現在智慧手機上已經沒有了,就是類似手柄的方向鍵一樣)

4:–pct-rotation//screen
rotation events percentage螢幕旋轉百分比,橫屏豎屏

5:–pct-nav//nav

基本導航事件。即來自於方向輸入裝置的上下左右操作。
events percentage”基本”導航事件百分比(導航事件包括上下左右,如方向輸入裝置的輸入)老手機的上下左右鍵,智慧機上沒有

6:–pct-majornav//major
即Navigation Bar的確認,選單,返回鍵等
nav events percentage”主要”導航事件百分比(這些導航事件通常會引發UI的事件,例如5-way pad的中間鍵、回退鍵、選單鍵)

7:–pct-syskeys//system(key)
operations percentage”系統”按鈕事件百分比(這些按鈕一般專供系統使用,如Home, Back, Start Call, End Call,音量控制)

8:–pct-appswitch//app
switch events percentage啟動activity事件百分比。在隨機的間隔裡,Monkey會執行一個startActivity()呼叫,作為最大程度覆蓋包中全部Activity的一種方法

9:–pct-flip//keyboard
flip percentage鍵盤輕彈百分比,如點選輸入框,鍵盤彈起,點選輸入框以外區域,鍵盤收回

10:–pct-anyevent//anyevents
該事件可能包含其他上述事件。
percentage其他型別事件百分比。包括了其他所有的型別事件,如按鍵、其他不常用的裝置上的按鈕等等。

在這裡插入圖片描述

monkey -p com.baidu.searchbox -s 23 --throttle2000 --ignore-crashes --ignore-timeouts -v -v -v 100000>D:/log/log.txt 2>&1 &

-p後面接著的對應的包名,如果是整機測試,就不需要 -p 包名

-s後面是對應的種子數,一般種子數在23,同步測試的結果,一般種子的個數固定為23,和選擇的操作步驟就是同步的。

–ignore-crashes --ignore-timeouts 這裡是在monkey測試的過程中遇到carash(崩潰)或者timeout(超時)的情況時忽略掉,一般不設定時,出現carash或者timeout時,Monkey測試會終止。這裡是防止Monkey測試終止。

-v 指的是Monkey測試時列印log級別。

100000 這裡是指點選的次數,對於單個應用程式這個次數設定在100000次就可以了;如果是整機,一般設定在500000次.D:/log/log.txt測試的log記錄在手機上D:/log/下面的log.txt裡面。

2>&1 固定的寫法,代表的意思是中間忽略的東西的日誌一併輸入到指定的檔案中。

最後單獨的一個"&" 是一旦Monkey測試開始了,之後可以拔掉資料線,不會影響Monkey測試。

測試所有模組 monkey -s 23 --ignore-crashes --ignore-timeouts -v-v -v 100000> /data/local/tmp/log.txt 2>&1 &

測試所有模組忽略崩潰,超時,設定時延200毫秒,23的偽隨機數種子 最詳細的log日誌 測試執行10000次,最後將日誌輸出到test.txt檔案 中,中間忽略的東西也一併輸入到指定的檔案中,可以拔掉資料線,不會影響Monkey測試

adb shell monkey --ignore-crashes --ignore-timeouts --throttle 200 -s 23 -v-v-v 10000 >D:/log/test.txt 2>&1

相關文章