Android-APP測試之monkey

1

android sdk安裝過程參考: http://blog.csdn.net/dr_neo/article/details/49870587 安裝過程中platform-toos總是安裝不成功,后面按照版本號單獨(dú)下載了個(gè)包,然后復(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報(bào)錯信息

Paste_Image.png

3

在Monkey測試過程中可能會出現(xiàn)程序崩潰(CRASH)和程序無響應(yīng)的情況(ANR),要將測試的log信息獲取到,從而解決bug

測試過程中出現(xiàn)crash現(xiàn)象時(shí),根據(jù)seed值來完成bug的復(fù)現(xiàn):adb shell monkey -p (包名) -s (seed值) -v 1000

Paste_Image.png

測試過程中出現(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)行測試,只是一個(gè)記事本文件,缺點(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í)間,此參數(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):  用于模擬一個(gè)拖拽操作。

PinchZoom(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End, stepCount): 模擬縮放手勢。

UserWait(sleepTime): 休眠一段時(shí)間

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ā)送單個(gè)手勢。

DispatchPointer(downtime,eventTime,action,x,yxpressure,size,metastate,xPrecision,yPrecision,device,edgeFilags):發(fā)送按鍵消息。

LaunchInstrumentation(test_name,runner_name): 運(yùn)行一個(gè)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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容