Monkey測試原理:Monkey是Android中的一個命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應(yīng)用程序進(jìn)行壓力測試。Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法。
測試重點(diǎn):根據(jù)給定的指令先進(jìn)行全模塊的monkey測試,等測試結(jié)束,查看Stability_base_err.txt,搜索關(guān)鍵詞(crash、anr、fatal等),找出問題所在。再打開Stability_base.txt 2記住此次出問題的seed值,等開發(fā)修復(fù)此問題,再以此seed值跑monkey驗證是否修復(fù)。
參數(shù)解釋:
balcklist/whitelist? 黑名單:不測試的應(yīng)用/白名單:只測試這部分應(yīng)用
pkg-blacklist-file /data/local/tmp/blacklist.txt 參數(shù)-p用于約束限制,用此參數(shù)指定一個或多個包(Package,即App)。指定包之后,Monkey將只允許系統(tǒng)啟動指定的APP。如果不指定包,Monkey將允許系統(tǒng)啟動設(shè)備中的所有APP
'--throttle 1000 用于指定用戶操作(即事件)間的時延,單位是毫秒,1000ms
'--ignore-crashes 用于指定當(dāng)應(yīng)用程序崩潰時(Force & Close錯誤),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序崩潰,Monkey依然會發(fā)送事件,直到事件計數(shù)完成。
'--ignore-timeouts 用于指定當(dāng)應(yīng)用程序發(fā)生ANR(Application No Responding)錯誤時,Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生ANR錯誤,Monkey依然會發(fā)送事件,直到事件計數(shù)完成。
'--ignore-security-exceptions ?用于指定當(dāng)應(yīng)用程序發(fā)生許可錯誤時(如證書許可,網(wǎng)絡(luò)許可等),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生許可錯誤,Monkey依然會發(fā)送事件,直到事件計數(shù)完成。
'--ignore-native-crashes 忽略本地代碼導(dǎo)致的崩潰。設(shè)置忽略后,Monkey將執(zhí)行完所有的事件,不會因此停止
'--monitor-native-crashe 用于指定是否監(jiān)視并報告應(yīng)用程序發(fā)生崩潰的本地代碼。
'-v-v-v 用于指定反饋信息級別(信息級別就是日志的詳細(xì)程度),總共分3個級別(3個v為最高日志級別)。
360000 360000為monkey測試點(diǎn)擊次數(shù)
'-s 用于指定偽隨機(jī)數(shù)生成器的seed值,如果seed相同,則兩次Monkey測試所產(chǎn)生的事件序列也相同的。
>> /mnt/sdcard/Stability_base.txt 2>> /mnt/sdcard/Stability_base_err.txt?? 這兩個是兩份不同日志所存放的位置的路徑
MONKEY專項測試
測試前提:
1) 手機(jī)初始化;
2) 連接wifi;
3) 進(jìn)入設(shè)置-亮度和字體,關(guān)閉自動調(diào)節(jié)開關(guān),自動鎖屏選擇不休眠;
4) (版本已默認(rèn)打開,不用再打開)進(jìn)入設(shè)置-輔助功能-開發(fā)人員工具,開啟USB調(diào)試;
5) 開啟log:
a)? 移動端撥號盤輸入:*#*#3646633#*#*,進(jìn)入mtklog項,家庭端在wifi框內(nèi)輸入*#1006#,進(jìn)入原生設(shè)置,進(jìn)入關(guān)于平板電腦,點(diǎn)按5次版本號進(jìn)入開發(fā)者模式,再點(diǎn)3次內(nèi)核版本進(jìn)入mtklog項;
b)點(diǎn)擊右上角按鈕進(jìn)入頁面,只開啟MobileLog,關(guān)閉剩余項;
c)點(diǎn)擊MobileLog進(jìn)入MobileLog 頁面,將Limit current Log Size和Limit Total Log Size分別 設(shè)置為4096MB、8192MB;
d)開啟mtklog;
7)blacklist.txt僅為參考,可以創(chuàng)建whitelist.txt進(jìn)行替代。
測試要求:測試機(jī)10臺,根據(jù)項目要求設(shè)置執(zhí)行的時間
測試內(nèi)容
測試項:全模塊測試
測試步驟:
1).黑名單blacklist.txt拷入手機(jī)? adb push 黑名單路徑 /data/local/tmp/
2)進(jìn)入cmd,打開adb 執(zhí)行adb shell
3)設(shè)置免關(guān)機(jī) setprop ro.monkey true
4)執(zhí)行命令:monkey --pkg-blacklist-file? /data/local/tmp/blacklist.txt? --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes? -v -v -v 360000 1 >> /mnt/sdcard/Stability_base.txt 2>> /mnt/sdcard/Stability_base_err.txt
5)標(biāo)配充電器充電
預(yù)期結(jié)果:
1.手機(jī)是否有出現(xiàn)死機(jī)、異常關(guān)機(jī)(排除無電自動關(guān)機(jī))、異常重啟
2.查看Stability_base_err.txt,搜索關(guān)鍵詞(crash、anr、fatal等,并確認(rèn)問題非第三方包問題),若無,則驗證通過。若有,則截取出問題下日志和相關(guān)log附在bug上。再查看Stability_base.txt,記下seed值,等下次驗證問題的時候使用。
測試項:單個模塊測試
測試步驟:
1)進(jìn)入cmd,打開adb 執(zhí)行adb shell
2)設(shè)置免關(guān)機(jī) setprop ro.monkey true
3)執(zhí)行命令:monkey --p -單個包名 --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes? -v -v -v 360000 1 >> /mnt/sdcard/Stability_base.txt 2>> /mnt/sdcard/Stability_base_err.txt
5)標(biāo)配充電器充電
預(yù)期結(jié)果:
1.手機(jī)是否有出現(xiàn)死機(jī)、異常關(guān)機(jī)(排除無電自動關(guān)機(jī))、異常重啟
2.查看Stability_base_err.txt,搜索關(guān)鍵詞(crash、anr、fatal等,并確認(rèn)問題非第三方包問題),若無,則驗證通過。若有,則截取出問題下日志和相關(guān)log附在bug上。再查看Stability_base.txt,記下seed值,等下次驗證問題的時候使用。
測試項:驗證問題測試
測試步驟:
1).黑名單blacklist.txt拷入手機(jī)
adb push? 黑名單路徑? /data/local/tmp/
2)進(jìn)入cmd,打開adb 執(zhí)行adb shell
3)設(shè)置免關(guān)機(jī) setprop ro.monkey true
4)執(zhí)行命令:monkey --pkg-blacklist-file? /data/local/tmp/blacklist.txt? --throttle 1000 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -s 上次出現(xiàn)問題的seed值 -v -v -v 360000 1 >> /mnt/sdcard/Stability_base.txt 2>> /mnt/sdcard/Stability_base_err.txt
5)標(biāo)配充電器充電
預(yù)期結(jié)果:
1.手機(jī)是否有出現(xiàn)死機(jī)、異常關(guān)機(jī)(排除無電自動關(guān)機(jī))、異常重啟
2.查看Stability_base_err.txt,搜索關(guān)鍵詞(crash、anr、fatal等,并確認(rèn)問題非第三方包問題),若無,則驗證通過。若有,則截取出問題下日志和相關(guān)log附在bug上。