在移動端自動化測試領域,有這樣的一只”Monkey”,它一旦被執行,就會讓被測的移動端應用程序像猴子一樣隨意亂跳,測試人員通常利用這只“Monkey”來對應用程序進行壓力測試,從而評估和檢查被測程序的穩定性。
Monkey命令的啟動腳本是安卓系統的System路徑下bin目錄中,用戶主要是通過adb相關的命令啟動Monkey來進行操作。Monkey命令在執行時,會結合搭配的參數,生成不同的偽隨機事件流,而且也會在移動設備上執行對應的測試事件操作。Monkey在進行穩定性測試過程中,如果被測程序崩潰或出現異常、發生了ANR,也就是程序未響應,Monkey會把相關的信息記錄對應的日志,并判斷測試過程是繼續運行還是停止運行。按照參數中指定的級別反饋,在Monkey操作中還可以看到執行過程中產生的報告和生成的事件信息。
Monkey對手機App進行穩定性測試時,會通過11大事件來模擬用戶的常規操作,但是這些事件在執行過程中都會充滿隨機性,主要有手勢事件、觸摸事件、屏幕旋轉事件、鍵盤事件、二指縮放事件、系統按鍵事件、軌跡事件、基本導航事件、主要導航事件、啟動Activity事件、其他類型方面的事件。
(圖片來源于網絡,如有侵權,請聯系刪之)
手勢事件比較常見,模擬用戶在手機屏幕的某一處的按下、抬起、任意移動等操作,Monkey命令可結合--pct-motion參數來配置該事件百分比。觸摸事件,有點類似于在手機上進行點擊的操作,模擬用戶在屏幕的某一處按下并抬起的操作,Monkey命令可結合--pct-touch參數來配置其事件百分比。屏幕旋轉事件也比較常見,就是用來模擬用戶手機的橫屏和豎屏切換,它算是一個隱藏事件,因為在官方文檔中并沒有太多的說明。Monkey命令可結合--pct-rotation參數來配置其事件百分比。鍵盤事件主要集中在使用鍵盤產生的相關操作,比如點擊輸入框、鍵盤彈起與收回等。Monkey命令可結合--pct-flip參數來配置其事件百分比。二指縮放事件就是用戶在手機屏幕上進行放大縮小手勢操作。Monkey命令可結合--pct-pinchzoom參數來配置其事件百分比。系統按鍵事件,主要是指點擊系統自帶的使用按鍵,比如點擊返回鍵、音量調節鍵等。Monkey命令可結合--pct-syskeys參數來配置其事件百分比。軌跡事件,現在看來幾乎是沒有的,這個事件就是模擬軌跡球的操作,像那種一系列的曲線滑動操作,Monkey命令可結合--pct-trackball參數來配置其事件百分比。基本導航事件,一般用的比較少,模擬輸入設備的上、下、左、右按鍵的操作,現在手機上幾乎沒這些操作了。Monkey命令可結合--pct-nav參數來配置其事件百分比。主要導航事件通常會產生UI界面中的動作,比如回退按鍵、菜單按鍵等。Monkey命令可結合--pct-majornav參數來配置其事件百分比。啟動Activity事件,可能不太好理解,簡單來說,相當于是在手機上啟動一個App的活動頁面,Monkey命令可結合--pct-appswitch參數來配置其事件百分比。最后就是其他類型事件,就是除前面說的那些外,如按鍵、其他不常用的設備上的按鈕等。Monkey命令可結合--pct-anyevent參數來配置其事件百分比,但是該事件現在很少使用。