日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

monkeyrunner自动化测试工具--脚本模板及MonkeyRunner常用事件

發布時間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

#導入我們需要用到的包和類并且起別名 import sys from com.android.monkeyrunner import MonkeyRunner as mr from com.android.monkeyrunner import MonkeyDevice as md from com.android.monkeyrunner import MonkeyImage as mi from com.android.monkeyrunner.easy import EasyMonkeyDevice ?#提供了根據ID進行訪問 from com.android.monkeyrunner.easy import By ? ?#根據ID返回PyObject的方法#connect device 連接設備 #第一個參數為等待連接設備時間 #第二個參數為具體連接的設備 device = mr.waitForConnection() if not device:print >> sys.stderr,"fail"sys.exit(1) <span style="white-space:pre"> </span> #定義要啟動的Activity componentName="com.ss.android.article.news/.activity.SplashActivity"#啟動特定的Activity device.startActivity(component=componentName) mr.sleep(3.0)#takeSnapshot截圖,獲取程序運行界面截圖 result = device.takeSnapshot() #save to file 保存到文件 result.writeToFile('./shot1.png','png');#保存到sdk的tools根目錄下 mr.sleep(3.0) device.press('KEYCODE_<span style="color: rgb(51, 51, 51); line-height: 21.6px;">HOME</span>', device.DOWN_AND_UP)
三、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常用事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。