1. 程式人生 > >Monkey學習筆記

Monkey學習筆記

一、Monkey的中文意思為“猴子”,就是亂按亂點。Monkey測試是自動化測試的一種手段。接下來就是記錄了我關於用monkey進行自動化測試。

二、首先monkey的執行環境非常簡單,只需要下載Android sdk 壓縮包,解壓後即可。解壓完成之後可以配置環境變數,這個很簡單,不詳細記載,具體截圖如下: 在這裡插入圖片描述 在這裡插入圖片描述

三、接下來看一下monkey工具的使用引數資訊。adb shell monkey 在這裡插入圖片描述 (1)從這裡面可以看到有一個-p的引數,這個引數就是制定要執行哪個包,後面跟包名 (如何檢視包名我在adb常用命令裡面記載過。),所以我們的命令也就是 adb shell monkey -p com.doumi.jianzhi 1000,後面這個1000指的是向這個APP傳送1000次隨機事件。這時候能夠發現手機已經執行起來了。成功執行後,顯示下圖資訊。 在這裡插入圖片描述

(2)然後我來檢視一下執行過程中的資訊。-v可以用來指定列印資訊的詳細級別,每增加一個-v就就增加一個資訊的詳細級別,總共三個級別,級別越高資訊越全面。 0級:adb shell monkey -v -p com.doumi.jianzhi 1000 列印測試執行時的一些傳送給被測Activity的事件 1級:adb shell monkey -v -v -p com.doumi.jianzhi 1000 增加了哪些Activity被選中,將在資訊中輸出來 2級:adb shell monkey -v -v -v-p com.doumi.jianzhi 1000 最詳細的日誌,包括了測試中選中/未選中的Activity資訊 如下: 在這裡插入圖片描述
(3)-s 用於指定偽隨機數生成器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的,則兩次測試效果也是相同的。(比如說上次先執行的是先單擊再滑行,如果這次seed值和上次一樣,那麼也是先單擊再滑行。),所有我們可以利用這個引數來幫助我們復現問題。 在這裡插入圖片描述 (4)–throttle 用於操作各操作間的延時,單位是毫秒。例如: adb shell monkey -v -p com.doumi.jianzhi --throttle 3000 1000(每個操作間隔3秒) 這時候發現手機上的操作不是最開始那種一閃而過的場景了。 (5)在使用monkey測試的時候,我們有可能還會想控制一下按鍵、觸屏、滑動等時間的百分比,以下幾種就是可以控制時間百分比的命令。 向APP傳送50次隨機事件,每次事件間隔3秒,其中設定觸屏時間佔50% adb shell monkey --pct-touch 50 -p com.doumi.jianzhi --throttle 3000 50 滑動事件 adb shell monkey --pct-motion 50 -p com.doumi.jianzhi --throttle 3000 50 設定軌跡球事件 adb shell monkey --pct-trackball 50 -p com.doumi.jianzhi --throttle 3000 50 設定基本導航事件(例如:向上、向下、向左、向右) adb shell monkey --pct-nav 50 -p com.doumi.jianzhi --throttle 3000 50 設定主要導航事件(例如:點選back鍵、menu鍵等) adb shell monkey --pct-majornay 50 -p com.doumi.jianzhi --throttle 3000 50 控制裝置系統按鍵(例如:撥號、結束通話、音量控制鍵) adb shell monkey --pct-syskeys 50 -p com.doumi.jianzhi --throttle 3000 50 (6) --ignore-crashes 加了這個引數,即使應用程式崩潰,monkey仍可以繼續傳送事件,直到事件數目達到設定的為止。如果不加這個引數,執行過程中如果出現崩潰,則monkey停止執行。 adb shell monkey -p com.doumi.jianzhi --ignore-crashes 50 (7) --ignore-timeouts 發生超時,ANR,monkey仍繼續傳送事件。 adb shell monkey -p com.doumi.jianzhi --ignore-timeouts 50 (8) --ignore-security-exceptions 程式發生許可錯誤(如:證書許可、網路許可等),monkey仍繼續傳送事件。 adb shell monkey -p com.doumi.jianzhi --ignore-security-exceptions 50 (9) --kill-process-after-error 當應用程式發生錯誤時,應用程式停止執行並保持在當前狀態。 adb shell monkey -p com.doumi.jianzhi --kill-process-after-error 1000 (10) --monitor-native-crashes 監視並報告Android系統中原生代碼的崩潰事件。 adb shell monkey -p com.doumi.jianzhi --monitor-native-crashes 1000

四、monkey log分析 可以將執行時的日誌資訊存入到text檔案裡面,如下: 在這裡插入圖片描述 然後開啟日誌檔案monkeylog.txt ,查詢FATAL EXCEPTION關鍵字,查詢Force finishing activity 關鍵字,如果下面帶有你測試的包名,那說明有問題,就可以給開發看了。 還有一種方法,cmd中輸入Monkey語句後,先不要回車。再開啟一個cmd,輸入:adb logcat -v threadtime >C:\Users\yinda\Desktop\log.txt 然後,第一個cmd視窗回車,緊接著,第二個cmd視窗回車。檢視桌面會出現log.txt檔案,可以從裡面根據關鍵字過濾錯誤,如果出現crash錯誤等,也可以直接把該log.txt給開發看。 在這裡插入圖片描述 本次學習筆記就先記到這個地方。