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