簡述:
Monkey起源:
Monkey程序由Android系統(tǒng)自帶,使用Java語言寫成颤难,在Android文件系統(tǒng)中的存放路徑是:/system/framework/monkey.jar爽室。Monkey配套執(zhí)行shell腳本存放路徑是:/system/bin/monkey汁讼。
Monkey作用:
Monkey用于進(jìn)行壓力測試(軟件穩(wěn)定性測試,向系統(tǒng)發(fā)送偽隨機(jī)用戶事件流實(shí)現(xiàn)壓力測試阔墩。解放雙手嘿架,告別點(diǎn)點(diǎn)點(diǎn)。)啸箫。 開發(fā)人員結(jié)合monkey 打印的日志和系統(tǒng)打印的日志耸彪,修改測試中出現(xiàn)的異常問題。
Monke優(yōu)缺點(diǎn):
優(yōu)點(diǎn):提升應(yīng)用穩(wěn)定性忘苛,能測出一些不可知的情況還有手動點(diǎn)點(diǎn)點(diǎn)無法測出的問題蝉娜。
缺點(diǎn):一般用來測試UI問題,局限性很明顯柑土。
一蜀肘、Android之monkey
操作步驟:
1、安裝adb(monkey測試使用的是adb命令稽屏,因此只需要配置即可);
2扮宠、安裝JDK;
3狐榔、adb安裝及環(huán)境配置(adb命令工具為使用方便這里默認(rèn)選擇放在c盤):
使用adb命令前提:安卓手機(jī)必須設(shè)置為開發(fā)者USB調(diào)試模式坛增。
我的電腦->屬性->環(huán)境變量->path->編輯->新建? 填入adb路徑(C:\Users\haoku\platform-adb-tools)->保存
4、檢測是否有monkey環(huán)境:
a薄腻、進(jìn)入設(shè)備
adb shell
b收捣、進(jìn)入指定目錄:
cd:/system/framework/
c、查看monkey.jar:
ls
d庵楷、查看monkey執(zhí)行之shell腳本(Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行罢艾,shell腳本在Android文件系統(tǒng)中的存放路徑是:/system/bin/monkey 這樣就可以通過在shell窗口中執(zhí)行:adb shell monkey {+命令參數(shù)}來進(jìn)行Monkey測試了楣颠。)
cd:/system/bin/
ls
5、測試安裝包
a咐蚯、獲取安卓包名:
首先手機(jī)端運(yùn)行待測項(xiàng)目童漩,然后終端命令:
adb logcat >C:\Users\haoku\Desktop\testOne.txt
再“Displayed”關(guān)鍵字搜索testOne.txt即可找到包名
b、手機(jī)設(shè)置
為保證monkey測試正常進(jìn)行春锋,需設(shè)置屏幕休眠時間間隔越長越好(可調(diào)永不休眠最佳矫膨,沒有此項(xiàng)的應(yīng)選最大時間值)。
c期奔、運(yùn)行monkey
C:\Users\haoku>adb shell monkey -p com.xxxxx.xxxxxx -v 3000 >C:\Users\haoku\Desktop\test.txt
d侧馅、測試停止后,查看導(dǎo)出的monkey日志呐萌,發(fā)現(xiàn)問題馁痴。
在log(test.txt)的最開始都會顯示Monkey執(zhí)行的seed值、執(zhí)行次數(shù)和測試的包名搁胆。
首先查看log日志弥搞,搜索“ANR ”看是否出現(xiàn)了ANR(異常或無響應(yīng)問題)渠旁,
然后在日志中搜索“Exception”崩潰異常攀例,快速定位到關(guān)鍵事件信息,
最后查看Monkey里面出錯前的一些事件動作顾腊,并手動執(zhí)行該動作粤铭,找出重現(xiàn)步驟,給開發(fā)杂靶。
6梆惯、monkey語法
monkey -p com.xxxxx.xxxxxx -s 23 ?--throttle2000 --ignore-crashes --ignore-timeouts -v -v -v 100000>C:\Users\haoku\Desktop\test.txt 2>&1 &
詳解:
??????? a、? -p后面接著的對應(yīng)的包名吗垮,如果是整機(jī)測試垛吗,就不需要 -p package_name
? ? ? ? b、? -s后面是對應(yīng)的種子數(shù)烁登,好像就是操作步驟怯屉,根據(jù)她們測試的經(jīng)驗(yàn),一般種子數(shù)在23饵沧,同步她們測試的結(jié)果锨络,一般種子的個數(shù)固定為23,和她們選擇的操作步驟就是同步的狼牺。
??????? c羡儿、?--throttle <毫秒> 指定用戶操作(即事件)間的時延,單位是毫秒是钥;如果不指定這個參數(shù)掠归,monkey會盡可能快的生成和發(fā)送消息缅叠。
? ? ? ? d、? --ignore-crashes --ignore-timeouts
這里是在monkey測試的過程中遇到carash或者timeout的情況時忽略掉虏冻,一般不設(shè)置時痪署,出現(xiàn)carash或者timeout時,Monkey測試會終止兄旬。這里是防止Monkey測試終止。
? ? ? ? e余寥、? -v 指的是Monkey測試時打印log級別领铐。
-v:最簡單(默認(rèn)),除了啟動宋舷、測試完成和最終結(jié)果外只提供較少的信息
-v ?-v :提供了較為詳細(xì)的測試信息绪撵,如逐個發(fā)送到Activity的事件信息
-v ?-v ?-v :提供了更多的設(shè)置信息,如測試中選中或未選中的Activity信息
常用:-v -v -v祝蝠,一般會保存到指定文件中供開發(fā)人員查找bug原因時使用
??????? f音诈、? 100000 這里是指點(diǎn)擊的次數(shù),根據(jù)她們測試的經(jīng)驗(yàn)绎狭,對于單個應(yīng)用程序這個次數(shù)設(shè)置在100000次就可以了细溅;如果是整機(jī),一般設(shè)置在500000次儡嘶。
? ? ? ? g喇聊、? 2>&1 固定的寫法,這個也很重要蹦狂,代表的意思是中間忽略的東東的日志一并輸入到指定的文件中誓篱。
? ? ? ? h、? 最后單獨(dú)的一個"&" 是一旦Monkey測試開始了凯楔,之后可以拔掉數(shù)據(jù)線窜骄,不會影響Monkey測試。
? ? ? ? l摆屯、? 測試所有模塊 ?monkey ?-s 23 --ignore-crashes --ignore-timeouts -v-v -v 100000> C:\Users\haoku\Desktop\test.txt 2>&1 &
另附:
--ignore-security-exception? 作用:通常邻遏,當(dāng)程序發(fā)生許可錯誤(例如啟動一些需要許可的Activity)導(dǎo)致的異常時,Monkey將停止運(yùn)行鸥拧。設(shè)置此項(xiàng)党远,Monkey將繼續(xù)發(fā)送事件給系統(tǒng),直到事件計(jì)數(shù)完成富弦。
--pct -touch? 作用:調(diào)整觸摸事件的百分比.(觸摸事件是指在屏幕中的一個down-up事件沟娱,即在屏幕某處按下并抬起的操作)比如一個應(yīng)用80%的操作都是觸摸,那就可以將此參數(shù)的百分比設(shè)置成相應(yīng)較高的百分比腕柜。如觸摸返回济似、觸摸簽到等
--pct -motion? 作用:調(diào)整motion事件百分比矫废。(motion事件是由屏幕上某處一個down事件、一系列偽隨機(jī)的移動事件和一個up事件組成)也就是直線滑動事件如從左到有滑動解鎖
--pct -trackball? 作用:調(diào)整滾動球事件百分比砰蠢。(滾動球事件由一個或多個隨機(jī)的移動事件組成蓖扑,有時會伴隨著點(diǎn)擊事件)如不規(guī)則滑動解鎖
--pct-nav? 作用:導(dǎo)航,現(xiàn)在手機(jī)基本沒有導(dǎo)航了
--pct-syskeys? 作用:按鍵消息比例台舱,主頁律杠、后退、音量增減
--pct-anyevent? 作用:其他不常用的按鍵比例的設(shè)置竞惋,不常用
--hprof? 作用:monkey測試完成后生成內(nèi)存快照柜去,data/misc路徑下生成,不常用拆宛,比較占空間
--ignore-security-exceptions? 作用:忽略權(quán)限問題的
--kill-process-after-error? 作用:當(dāng)錯誤發(fā)生時殺進(jìn)程
--monitor-native-crashes? 作用:監(jiān)視崩潰時的本地代碼
adb shell kill [剛才查到的進(jìn)程號]? 作用:殺死m(xù)onkey進(jìn)程
二嗓奢、iOS之Fastmonkey
簡述:
Fastmonkey起源:
基于 appium 或 macaca 的開源Monkey測試工具在使用過程中出現(xiàn)諸多問題,比如:配置過于復(fù)制浑厚,上手慢股耽,執(zhí)行速度達(dá)不到測試要求、有的還需要進(jìn)行App源碼插莊钳幅,直到Faskmonkey的出現(xiàn)物蝙,它集眾家之長,已經(jīng)基本滿足iOS壓力測試敢艰。
Fastmonkey優(yōu)點(diǎn):
無需插樁茬末、高效率、每秒4-5個action盖矫、輕量極簡丽惭。
1、Fastmonkey配置
a辈双、Fastmonkey 下載:
b责掏、brew 安裝 Carthage,用于iOS下載工程所依賴第三方庫:
brew install??carthage
c湃望、Fastmonkey之Xcode(XCTestWD)工程配置過程
首先下載工程依賴包:
carthage update
然后如下配置:
配置值刪除:
證書配置:
代碼配置:
2换衬、Fastmonkey執(zhí)行
首先選擇:XCTestWDUITests -> 真機(jī),然后:command +“u”证芭,F(xiàn)astmonkey測試開始瞳浦。
小白一只,不足之處歡迎指正废士!期待Monkey愛好者一起學(xué)習(xí)進(jìn)步~