money查詢
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
相關文章
- SQL查詢的:子查詢和多表查詢SQL
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- 複雜查詢—子查詢
- 查詢——二分查詢
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- 查詢演算法__Fibonacci查詢演算法
- group by,having查詢 ”每**“的查詢
- Elasticsearch複合查詢——boosting查詢Elasticsearch
- 離線查詢與線上查詢
- 查詢演算法__插值查詢演算法
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- MySQL - 資料查詢 - 簡單查詢MySql
- SSH:hiberate實現資料的查詢(單查詢和全查詢)
- 21億Q綁查詢21億Q綁查詢21億Q綁查詢21億Q綁查詢21億Q綁查詢
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- 391、Java框架46 -【Hibernate - 查詢HQL、查詢Criteria、查詢標準SQL】 2020.10.19Java框架SQL
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- mysql查詢結果多列拼接查詢MySql
- 資料庫高階查詢之子查詢資料庫
- 查詢最佳化——查詢樹結構
- Solr複雜查詢一:函式查詢Solr函式
- 查詢演算法__二分查詢演算法
- Elasticsearch中的Term查詢和全文查詢Elasticsearch
- MySQL之連線查詢和子查詢MySql
- mysql查詢語句5:連線查詢MySql
- DS靜態查詢之順序查詢
- Laravel Query Builder 複雜查詢案例:子查詢實現分割槽查詢 partition byLaravelUI
- IP查詢類API介面查詢,含各精度IP歸屬地查詢介面API
- Elasticsearch查詢Elasticsearch
- 查詢 Search
- 多表查詢
- Mybatis查詢MyBatis
- orm 查詢ORM
- SSH:查詢
- MySQLUPDATE查詢MySql
- Hibernate 查詢
- Json 查詢JSON