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