天天看點

python+appium【第四章-adb指令之monkey指令】

首先我們來了解一下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如何定位元素

繼續閱讀