一、.Monkey測試概念
Monkey是Android中的一個命令行工具,可以用過adb shell模擬用戶行為,運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。
二、Monkey工作原理
測試原理:利用socket通訊的方式來模擬用戶按鍵輸入、觸摸屏輸入、手勢輸入等。
三、基礎命令與示例
1.adb devices:查看當前連接的設備,連接到計算機的Android設備或者模擬器;
2.adb install:指定APK文件安裝到設備 ;
3.卸載軟件
adb uninstall (軟件包名):指定包名卸載軟件;
adb uninstall -k (包名):+k參數,卸載軟件但保留配置和緩存文件;
4.使用Monkey命令進行隨機測試
1)adb shell monkey -p(package)包名 number(次數) :指定文件包隨機次數(若不指定包名,monkey將允許系統啟動設備中的所有app);
2)指定多個包進行隨機測試
adb shell monkey -p 包名 -p 包名
5.日志級別
1)Level0:缺省值,僅提供啟動提示、測試完成和蕞終結果等少量信息。
示例:adb shell monkey -p com.storedisplay.client -v 100
2)Level1:提供較為詳細的日志,包括每個發送到Activity的事件信息。
示例:adb shell monkey -p com.storedisplay.client -v -v 100
3)Level2:蕞詳細的日志,包括了測試中選中/未選中的Activity。
示例:adb shell monkey -p com.storedisplay.client -v -v -v 100
6.Monkey其他命令參數
1)參數:-s
釋義:用于指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的時間序列也相同。
示例:adb shell monkey -p com.storedisplay.client-s 10 100
2)參數:–throttle(毫秒)
s釋義:用于指定用戶操作(事件)間的時延,單位是毫秒。
示例:adb shell monkey -p com.storedisplay.client --throttle 300 100
3)參數:–ignore-crashes
釋義:用于指定當前應用程序崩潰時(Force&Close錯誤),Monkey是否停止運行。若使用該參數,即使應用程序崩潰,Monkey依然發送事件,直到發送事件結束完成。
示例:adb shell monkey -p com.storedisplay.client --ignore-crashes 1000
4)參數:–ignore-timeouts(無響應ANR)
釋義:用于指定當前應用程序發送ANR錯誤時,Monkey是否停止運行。若使用此參數,即使應用程序發送ANR錯誤,Monkey依然會發送事件,直至事件完成。
示例:adb shell monkey -p com.storedisplay.client --ignore-tomeouts 1000
5)參數:–ignore-security-exceptions(許可證書崩潰)
釋義:用于指定當前應用程序發生錯誤時(如證書許可、網絡許可等),Monkey是否停止運行。如果使用此參數,即使應用程序發生許可錯誤,Monkey依然會發送事件直至事件完成。
示例:adb shell monkey -p com.storedisplay.client --ignore-security-exceptions 1000
6)參數:–kill-process-after-error(發生錯誤停止并保持當前狀態)
釋義:用于指定當前應用程序發送錯誤時,是否停止其運行。如果指定此參數,當應用程序發生錯誤時,應用程序停止并保持在當前狀態(注意:系統并不會結束該應用程序的進程)。
示例:adb shell monkey -p com.storedisplay.client --kill-process-after-error 1000
7)參數:–monitor-native-crashes(監視并報告Android系統本地代碼的崩潰事件)
示例:adb shell monkey -p com.storedisplay.client --monitor-native-crashes 1000