首先我們來了解一下Monkey的概念
Monkey概念:Monkey是Android中的一個指令行工具,可以運作在模拟器裡或實際裝置中。它向系統發送僞随機的使用者事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實作對正在開發的應用程式進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。該工具用于進行壓力測試。然後開發人員結合monkey列印的日志和系統列印的日志,分析測試中的問題。
Monkey測試的特點:Monkey測試,所有的事件都是随機産生的,不帶任何人的主觀性。
1、測試的對象僅為應用程式包,有一定的局限性。
2、Monky測試使用的事件資料流是随機的,不能進行自定義。
3、可對MonkeyTest的對象,事件數量,類型,頻率等進行設定。
Monkey測試目的
測試app是否會Crash(崩潰)
是以我們在公司一般是使用monkey對apk進行壓力測試,檢驗它在高強度的調試下能否持續運作
接下來我們針對monkey的參數進行詳解
指定一個測試包進行monkey測試
-p 參數用于限制隻對一個包進行monkey測試
針對這個 com.bng.calculator 包 進行50次的随機測試
monkey -p com.bng.calculator 50
指定多個包進行moneky測試
注意指定多個包時 需要用-p進行連接配接
針對 com.htc.Weather 和 com.htc.pdfreader-pcom.htc.photo.widgets 進行100次的随機測試
adb shell monkey-p com.htc.Weather –p com.htc.pdfreader-pcom.htc.photo.widgets 100
不指定包進行monkey測試
adb shell monkey 100
monkey的日志子產品不在此較長的描述,具體的我們可以使用adb的logcat進行日志的輸出,觀看更加美觀,詳情請移步上一篇文章
monkey的延時子產品
使用者事件流之間的延時操作 —-throttle
執行五十次時間 每次間隔0.5s做一次操作
adb shell monkey -p com.bng.calculator --throttle 500 50
monkey -p com.bng.calculator --throttle 500 50
menkey自帶随機測試組
monkey 假設随機過程中發現了bug,程式崩潰或者閃退,報告給開發,開發說修複好了,如何進行回歸?
-s 僞随機數的seed值,如果seed相同,則兩次monkey産生事件也相同。執行相同操作
monkey 推出-s 1–10組(注:需要将軟體至為初始狀态)
-s 4 指定使用第四組随機數
monkey -p com.bng.calculator --throttle 500 -s 4 100
monkey崩潰繼續運作
--ignore-crashes
用于指定當應用程式崩潰時(Force&Close錯誤),Monkey是否停止運作。如果使用此參數,即使應用程式崩潰,Monkey依然會發送事件,直到事件計數完成。
示例:adb shell monkey -p com.htc.Weather --ignore-crashes 1000 測試過程中即使Weather程式崩潰,Monkey依然會繼續發送事件直到事件數目達到1000為止;
monkey逾時繼續運作
--ignore-timeouts
如果使用此參數,即使應用程式發生ANR錯誤,Monkey依然會發送事件,直到事件計數完成。
示例:adb shell monkey -p com.bng.calculator --throttle 500 -s 6 100 --ignore-crashes --ignore-timeouts
monkey發生某些錯誤時繼續運作
--ignore-security-exceptions
用于指定當應用程式發生許可錯誤時(如證書許可,網絡許可等),Monkey是否停止運作。如果使用此參數,即使應用程式發生許可錯誤,Monkey依然會發送事件,直到事件計數完成。
示例: monkey -p com.bng.calculator --throttle 500 -s 6 --ignore-crashes --ignore-timeouts --ignore-security-exceptions 500
monkey事件類别 注意:pct事件的總和不能超過100%
觸摸事件
--pct-touch{+百分比}0:觸摸,觸摸事件泛指發生在某一位置的一個down-up事件,點選操作
示例:monkey -p com.bng.calculator --throttle 500 -s 6 --pct-touch 100 50
動作事件
--pct-motion{+百分比}1:動作,動作事件泛指從某一位置接下(即down事件)後經過一系列僞随機事件後彈出(即up事件)
示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-motion 100 50
二指縮放事件
--pct-pinchzoom{+百分比}2:二指縮放,智能機上的放大縮小手勢操作事件
示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-pinchzoom 50
軌迹事件
--pct-trackball{+百分比}3:軌迹,軌迹事件包括一系列的随機移動,以及偶爾跟随在移動後面的點選事件
示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-trackball 50
螢幕旋轉事件
--pct-rotation{+百分比}4:螢幕旋轉,橫屏豎屏事件
示例: monkey -p com.bng.calculator --throttle 500 -s 6 --pct-rotation 50
那正常的一個monkey測試流程是怎麼樣的?
1. adb devices 檢視裝置是否連接配接
2. adb shell 進入shell界面
3. adb logcat -c
4. adb logcat -f 手機路徑 -s *:E -v long
5. monkey 指令執行 示例:adb shell monkey -p com.bng.calculator --throttle 500 -s 6 100 --ignore-crashes --ignore-timeouts 10000000
6. 結束日志列印,分析日志
7. 将報錯結果截圖給開發
今天的分享到此結束,下一篇我将給大家分享一下appium如何定位元素