1
android sdk安裝過程參考: http://blog.csdn.net/dr_neo/article/details/49870587 安裝過程中platform-toos總是安裝不成功芬骄,后面按照版本號單獨(dú)下載了個包鹦聪,然后復(fù)制粘貼到android-sdk目錄下,文件名為platform-tools即可泽本。
2
安裝完成后 運(yùn)行cmd
adb shell #進(jìn)入shell腳本模式
cd /system/framework #進(jìn)入framework目錄
ls #查看monkey.jar有否
adb shell pm list packages #查看手機(jī)內(nèi)所有的包名
adb shell "dumpsys window |grep mCurrent" #查看當(dāng)前應(yīng)用的名包
monkey -p com.mar.ui -v 500 #執(zhí)行monkey命令
monkey -help #monkey命令幫助
adb shell monkey -p com.mar.ui -v 1000>d:\monkeylog.txt #將結(jié)果重定向到本地
查看導(dǎo)出文件规丽,此文件無crash和anr報錯信息
3
在Monkey測試過程中可能會出現(xiàn)程序崩潰(CRASH)和程序無響應(yīng)的情況(ANR),要將測試的log信息獲取到,從而解決bug
測試過程中出現(xiàn)crash現(xiàn)象時冰抢,根據(jù)seed值來完成bug的復(fù)現(xiàn):adb shell monkey -p (包名) -s (seed值) -v 1000
測試過程中出現(xiàn)ANR現(xiàn)象艘狭,會輸出相應(yīng)的信息,以ANR開頭鼓鲁,獲取到信息進(jìn)行問題的解決,同樣可以通過seed來進(jìn)行復(fù)現(xiàn) adb shell cd /data/anr切換到設(shè)備路徑下 ls可以看到traces.txt里面即為log信息
4
monkeyscript monkeyscript是monkey的腳本語言橙弱,是一組可以被monkey識別的命令集合燥狰,可以幫我們完成一系列的被固定的重復(fù)性操作,monkey通過腳本來進(jìn)行測試龙致,只是一個記事本文件,缺點(diǎn)是在坐標(biāo)屈梁、按鍵等方面沒有邏輯性榛了。
常用API的介紹
LaunchActivity(pkg_name, cl_name): 啟動應(yīng)用的Activity。參數(shù):包名和啟動的Activity构哺。
Tap(x, y, tapDuration): 模擬一次手指單擊事件战坤。參數(shù):x,y為控件坐標(biāo),tapDuration為點(diǎn)擊的持續(xù)時間途茫,此參數(shù)可省略。
DispatchPress(keyName): 按鍵臀防。參數(shù): keycode
RotateScreen(rotationDegree, persist): 旋轉(zhuǎn)屏幕边败。 參數(shù):rotationDegree為旋轉(zhuǎn)角度捎废, e.g. 1代表90度;persist表示旋轉(zhuǎn)之后是否固定登疗,0表示旋轉(zhuǎn)后恢復(fù)嫌蚤,非0則表示固定不變脱吱。
DispatchFlip(true/false): 打開或者關(guān)閉軟鍵盤认罩。
LongPress(): 長按2秒。
PressAndHold(x, y, pressDuration): 模擬長按事件垦垂。
DispatchString(input): 輸入字符串。
Drag(xStart, yStart, xEnd, yEnd, stepCount): 用于模擬一個拖拽操作间校。
PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模擬縮放手勢页慷。
UserWait(sleepTime): 休眠一段時間
DeviceWakeUp(): 喚醒屏幕。
PowerLog(power_log_type, test_case_status): 模擬電池電量信息差购。
WriteLog(): 將電池信息寫入sd卡欲逃。
RunCmd(cmd): 運(yùn)行shell命令。
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFlags):向指定位置稳析,發(fā)送單個手勢。
DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags):發(fā)送按鍵消息诚纸。
LaunchInstrumentation(test_name,runner_name): 運(yùn)行一個instrumentation測試用例陈惰。
DispatchTrackball: 模擬發(fā)送軌跡球事件。
ProfileWait: 等待5秒抬闯。
StartCaptureFramerate(): 獲取幀率溶握。
EndCaptureFramerate(input): 結(jié)束獲取幀率。
完成monkey.txt腳本的編寫睡榆,保存到某一路徑下 切換到monkey.txt路徑下 adb push monkey.txt /data/local/temp/(設(shè)備的任一路徑袍榆,無規(guī)定) adb shell切換到設(shè)備下 cd /data/local/temp 切換到monkey.txt路徑下 monkey -f monkey.txt -v 10 執(zhí)行monkey腳本及執(zhí)行次數(shù)
完成MonkeyScript的自動化Monkey測試
參考文檔:http://blog.csdn.net/javaandroid730/article/details/53312555