-
APP性能測(cè)試
monkeyscript:是一組可以被Monkey識(shí)別的命令集合,可以完成重復(fù)固定的操作
monkey與monkeyrunner的區(qū)別:
monkey:在adb shell中,生成用戶或系統(tǒng)的偽隨機(jī)事件
monkeyrunner:通過(guò)API定義特定的命令和事件控制設(shè)備
monkeyrunner APIs?
monkeyrunner:用來(lái)連接設(shè)備或模擬器
monkeydevice:提供安裝、卸載應(yīng)用。發(fā)送模擬事件
monkeyimage:完成圖像保存,及對(duì)比的操作
monkeyrunner的測(cè)試類型:多設(shè)備控制、功能測(cè)試、回歸測(cè)試
查看全部 -
MONEKY API2
查看全部 -
MonkeyRunner?API -alert
查看全部 -
MonkeyRunner實(shí)現(xiàn)自動(dòng)化過(guò)程是一個(gè)純功能性的過(guò)程
如果想要多次,需要python腳本實(shí)現(xiàn)多線程或循環(huán)操作,可以實(shí)現(xiàn)重復(fù)的操作過(guò)程
查看全部 -
查看設(shè)備名稱 命令:adb devices? ?(device前面的數(shù)字就是設(shè)備名稱)
MonkeyRunner.sleep(2)等待時(shí)間
MonkeyRunner? 腳本名? ?運(yùn)行腳本
查看全部 -
MonkeyRunner API-waitForConnection :? 等待設(shè)備連接,有多個(gè)device id,需要指明具體是哪個(gè)設(shè)備
命令: waitForConnection(float timeout,string deviceid)
Monkeydevice API-drag:? ?拖動(dòng)
命令:drag(tuple start,tuple end,float duration,integer steps)
start? 起點(diǎn)位置? ? ?end? 終點(diǎn)位置? ? duration? 手勢(shì)持續(xù)的時(shí)間? ?steps? 插指點(diǎn)的步數(shù),默認(rèn)10
MonkeyDevice API-press :按鍵
命令:press(string keycode,dictionary type)
keycode 名:Down、UP、DOWN_AND_UP
MonkeyDevice API-startActivity :啟動(dòng)應(yīng)用
命令:startActivity(package+'/'activity)(包名+Activity名,是一個(gè)參數(shù))
MonkeyDevice API -touch:? 點(diǎn)擊
命令:touch(integer x,integer y,integer type)
x坐標(biāo)值,y坐標(biāo)值,type:DOWN,UP,DOWN_AND_UP
MonkeyDevice API -type? :輸入
命令:type(string message)
MonkeyDevice API-takeSnapshot? :截屏
命令:MonkeyImage takeSnapshot()
MonkeyImageAPI-sameAS :圖像對(duì)比
命令:boolean sameAs(MonkeyImage other,float percent)
MonkeyImageAPI-writetoFile :保存圖像
void writeToFile(string path, string format)
查看全部 -
MonkeyRunner API-alert
警告框 :? 命令:void alert(string message, string title,string okTitle)
腳本:
#!/usr/bin/python
#-*- UTF-8 -*-
from com.android.monkeyrunner import MonkeyRunner? 導(dǎo)入包
MonkeyRunner.alert('hello mook frends','this is title','OK')
執(zhí)行腳本語(yǔ)句: monkeyrunner 腳本名
monkeyrunner所在的路徑:cd../../Downloads/android-sdk/tools/
說(shuō)明:執(zhí)行過(guò)程中發(fā)現(xiàn)命令無(wú)法執(zhí)行時(shí),檢查SDK工具的路徑?jīng)]有添加到環(huán)境變量里面(即 /Downloads/android-sdk/tools 沒(méi)有添加到環(huán)境變量里面,加上即可解決)
查看全部 -
DispatchPointer
查看全部 -
2?DispatchTrackball
查看全部 -
1 DispatchTrackball
查看全部 -
MonkeyScript實(shí)踐
1、啟動(dòng)APP。2、點(diǎn)擊輸入框。3、輸入查詢條件。4、點(diǎn)擊鍵盤(pán)回車。5、點(diǎn)擊搜索按鈕。6、等待結(jié)果出現(xiàn)。7、點(diǎn)擊Clear按鈕清屏
cd Downloads/android-sdk 下面的uiautomatorviewer 中獲取坐標(biāo)點(diǎn)
adb push 腳本名/data/local/tmp/? 腳本復(fù)制到手機(jī)里面命令
monkey -f 腳本名? 次數(shù)? 在手機(jī)中執(zhí)行腳本
查看全部 -
adb shell monkey -v - p xxx? --pct-touch <percent>
查看全部 -
Monkey Script
執(zhí)行Monkey的腳本命令:adb shell monkey -f <scriptfile><event-count>
1、DispatchTrackball 軌跡球事件
軌跡球事件DispatchTrackball(long downtime(按鍵最初被按下的時(shí)間),long eventide(事件發(fā)生的時(shí)間),int action(具體操作了按下還是彈起),float x(x的坐標(biāo)點(diǎn)),float y(y的坐標(biāo)點(diǎn)),float pressure(當(dāng)前壓力事件的大小0-1),float size(觸摸事件0-1),int metastate(按下meta鍵的標(biāo)識(shí)),float xprecision(x坐標(biāo)的精確值),float yprecision(y坐標(biāo)的精確值),int device(事件來(lái)源0-X),int edgeflags(超出屏幕范圍))
action 0表示按下,1代表彈起,x和y代表的坐標(biāo)點(diǎn)DispatchPointer? 點(diǎn)擊事件
DispatchPointer(long downtime,long eventide,int action,float x,float y,float pressure,float size,int metastate,float xprecision,float yprecisoin,int device,int edgeflags)
action 0表示按下,1代表彈起,x和y代表的坐標(biāo)點(diǎn)
DispatchString 輸入字符串事件
DispatchString(String text)
LaunchActivity? ?啟動(dòng)應(yīng)用
LaunchActivity(package(包名),Activity(啟動(dòng)頁(yè)面的名稱))
UserWait 等待事件
UserWait(1000 等待事件的值毫秒,默認(rèn)值1000)
DispatchPress 按下鍵值
DispatchPress(int keycode)#keycode 66回車鍵
查看全部 -
ANR結(jié)果析取,實(shí)踐步驟和CRASH析取結(jié)果實(shí)踐步驟一樣。
anr日志存放路徑:/data/anr/traces.txt
查看全部 -
CRASH 結(jié)果析取
實(shí)踐過(guò)程:
1、安裝可以引起CRASH的APP
2、執(zhí)行壓力命令
3、析取CRASH的Exception信息
查看全部
舉報(bào)