monkeyrunner自动化测试工具--脚本模板及MonkeyRunner常用事件
一、手機安裝app(今日頭條)
二、寫.PY的monkeyrunner腳本
基本樣式:
#在程序中引入monkeyrunner模塊
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
#連接到正在運行的設備戒模擬器上,返回一個MonkeyDevice對象
device = MonkeyRunner.waitForConnection()
#安裝待測應用, installPackage會返回一個布爾值,來說明安裝的結果
device.installPackage( "./CalcTest.apk")
#設置要啟勱的活動類名,有包名和活動類組成
runComponent = "com.sky.jisuanji/.JisuanjizixieActivity“
#啟動活動組件
device.startActivity(component = runComponent)
一個簡單的功能,打開一個看新聞的頭條app,然后截圖,再按鍵home使其后臺運行。,腳本保存為E盤目錄下test0.py
三、PC運行該腳本
手機連接電腦后,PCcmd命令行輸入 monkeyrunner E:\test0.py。執行成功。
ps:獲取app包名和入口startActivity名稱
使用aapt命令。aapt位于sdk的platform-tools中,如果沒有就網上下載aapt .exe 并放入到sdk的platform-tools目錄中
執行aapt dump badging E:\***.apk即可,運行后的結果中以下兩行分別是應用包名package和入口activity名稱
ps:monkeyrunner常用事件
#monkeyrunner導入模塊
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage#monkeyrunner連接設備
device = MonkeyRunner.waitForConnection()if not device:
print "Please connect a device to start!"
else:
print "Start "
#monkeyrunner啟動一個Activity
componentName="com.ss.android.article.news/.activity.SplashActivity"
device.startActivity(component=componentName)
#monkeyrunner按鍵
發送指定鍵的關鍵事件: device.press(參數1:鍵碼, 參數2:觸摸事件類型)
參數1:常用鍵內容
按下HOME鍵 device.press('KEYCODE_HOME', MonkeyDevice.DOWN_AND_UP)
按下BACK鍵 device.press('KEYCODE_BACK', MonkeyDevice.DOWN_AND_UP)
按下下導航鍵 device.press('KEYCODE_DPAD_DOWN', MonkeyDevice.DOWN_AND_UP)
按下上導航鍵 device.press('KEYCODE_DPAD_UP', MonkeyDevice.DOWN_AND_UP)
按下OK鍵 device.press('KEYCODE_DPAD_CENTER', MonkeyDevice.DOWN_AND_UP)
按下左導航鍵 device.press('KEYCODE_DPAD_LEFT', MonkeyDevice.DOWN_AND_UP)
按下右導航鍵 device.press('KEYCODE_DPAD_RIGHT', MonkeyDevice.DOWN_AND_UP)
相應的按鍵對應名稱:
menu鍵:KEYCODE_MENU
home鍵:KEYCODE_HOME
back鍵:KEYCODE_BACK
search鍵:KEYCODE_SEARCH
call鍵:KEYCODE_CALL
end鍵:KEYCODE_ENDCALL
上音量鍵:KEYCODE_VOLUME_UP
下音量鍵:KEYCODE_VOLUME_DOWN
power鍵:KEYCODE_POWER
camera鍵:KEYCODE_CAMERA
#monkeyrunner卸載包
device.removePackage ('com.example.android.notepad')
print ('卸載成功')
#monkeyrunner安裝包
device.installPackage('ApiDemos.apk')print ('安裝成功')
#monkeyrunner單擊控件
方式1:device.touch(507,72,"DOWN_AND_UP")?
方式2:easy_device.touch(By.id('id/qingchu'),device.DOWN_AND_UP)
用后者需要導入
from com.android.chimpchat.hierarchyviewer import HierarchyViewer #根據ID找到ViewNode,對viewnode的一些操作等
from com.android.monkeyrunner.easy import EasyMonkeyDevice ?#提供了根據ID進行訪問方法touch、drag等
from com.android.monkeyrunner.easy import By ? ?#根據ID返回PyObject的方法
from com.android.hierarchyviewerlib.models import ViewNode as vn #代表一個控件,可獲取控件屬性
#monkeyrunner長按控件
方式1:device.touch(507,72,"DOWN_AND_UP")?
device.touch(507,72,MonkeyDevice.DOWN)
MonkeyRunner.sleep(1)?
device.touch(507,72,MonkeyDevice.UP)
方式2:
easy_device.touch(By.id('id/qingchu'),,MonkeyDevice.DOWN)?
MonkeyRunner.sleep(1)
?easy_device.touch(By.id('id/qingchu'),MonkeyDevice.UP)
用后者需要導入
from com.android.chimpchat.hierarchyviewer import HierarchyViewer #根據ID找到ViewNode,對viewnode的一些操作等
from com.android.monkeyrunner.easy import EasyMonkeyDevice ?#提供了根據ID進行訪問方法touch、drag等
from com.android.monkeyrunner.easy import By ? ?#根據ID返回PyObject的方法
from com.android.hierarchyviewerlib.models import ViewNode as vn #代表一個控件,可獲取控件屬性
#monkeyrunner滑動屏幕
for i in range(1,70):
device.drag((250,110),(250,850),0.1,10)
MonkeyRunner.sleep(1)
#monkeyrunner延時
MonkeyRunner.sleep(3)
#monkeyrunner截圖
result = device.takeSnapshot()
?result.writeToFile('C:\\Users\\Martin\\Desktop\\test.png','png')
#monkeyrunner截圖對比
result1.sameAs(result0,1.0)
#monkeyrunner局部圖片(前兩個值是左上角左邊,后兩個值是右下角減左上角的坐標。)
pic0= result0.getSubImage((4,41,400,700))
#monkeyrunner重啟設備
device.reboot()
#monkeyrunner單擊電源鍵,熄滅屏幕
device.press('KEYCODE_POWER',MonkeyDevice.DOWN_AND_UP)
#monkeyrunner喚醒屏幕
device.wake()
#monkeyrunner輸入文本
Cotent='1234'
device.type(Cotent)
#monkeyrunner獲取文本
方式1:#通過By來獲取
text1=easy_device.getText(By.id('id/text'))
print text1.encode('utf-8')
前提:
from com.android.monkeyrunner.easy import EasyMonkeyDevice ?#提供了根據ID進行訪問方法touch、drag等
from com.android.monkeyrunner.easy import By ? ?#根據ID返回PyObject的方法
easy_device = EasyMonkeyDevice(device)#初始化EasyMonkeyDevice模塊,必須放在startActivity之后,用來通過ID訪問控制
方式2:通過HierarchyViewer
content = hViewer.findViewById('id/text') ?
text0 = hViewer.getText(content)
print text0.encode('utf-8')
前提:
from com.android.chimpchat.hierarchyviewer import HierarchyViewer #根據ID找到ViewNode,對viewnode的一些操作等
from com.android.hierarchyviewerlib.models import ViewNode as vn #代表一個控件,可獲取控件屬性
hViewer = device.getHierarchyViewer() # 對當前UI視圖進行解析
總結
以上是生活随笔為你收集整理的monkeyrunner自动化测试工具--脚本模板及MonkeyRunner常用事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: App自动化测试之企微打卡、快手刷金币
- 下一篇: 计算机休眠快捷键设置在哪里设置,电脑待机