monkey入門-05monkeyrunner

MonkeyRunner工具是使用Jython(使用Java編程語言實現的Python)寫出來的,它提供了多個API,通過monkeyrunner API 可以寫一個Python的程序來模擬操作控制Android設備app,測試其穩定性並通過截屏可以方便地記錄出現的問題。

MonkeyRunner功能

1.多設備控制:API可以跨多個設備,一次啓動全部模擬器來實施測試套件;

2.功能測試:爲應用自動執行一次功能測試,然後觀察輸出結果的截屏。

3.可擴展自動化:因爲monkeyrunner是一個API工具包,你可以開發基於Python模塊的整個系統來控制Android設備;

Monkeyrunner與Monkey區別

monkeyrunner和money沒有什麼直接的關係,monkey是在設備直接運行adb shell命令生成隨機事件來進行測試的。相比較而言,monkeyrunner則是通過API發送特定的命令和事件來控制設備。

monkeyrunner環境搭建

  • 安裝並配置好jdk環境
  • 安裝android sdk
  • 安裝python 
  • monkeyrunner環境變量配置: {Path}\Andriod_SDK\tools

 

MonkeyRunner工具主要有三個類:

  • MonkeyRunner
  • MonkeyDevice
  • MonkeyImage

1.MonkeyRunner

MonkeyRunner提供連接真機和模擬器、輸入、暫停、警告框等方法。

 

常用方法

waitForConnection(float timeout,string deviceid)

from com.android.monkeyrunner import MonkeyRunner as mr
print("connect devices...")

device=mr.waitForConnection()

 

2.MonkeyDevice

MonkeyDevice類提供了安裝和卸載程序包、開啓Activity、發送按鍵和點擊事件、運行測試包等方法。

常用方法

  • installPackage (string path)
  • removePackage (string package)
  • startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)
  • touch (integer x, integer y, integer type)

touch參數說明

integer x,x座標值。
integer y,y座標值。
integer type,key event類型(如DOWN、UP、DOWN_AND_UP)。

DOWN爲按下事件 UP爲彈起事件 DOWN_AND_UP爲按下彈起事件。

  • drag (tuple start, tuple end, float duration, integer steps)

drag參數詳細說明如下:

tuple start,拖拽起始位置,爲tuple類型的(x,y)座標點。
tuple end,拖拽終點位置,爲tuple類型的(x,y)座標點。
float duration,拖拽手勢持續時間,默認爲1.0s。
-integer steps,插值點的步數,默認值爲10。

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md


print("connect devices...")
device=mr.waitForConnection()

print("install app...")
device.installPackage(程序包)

package = '包名'
activity = 'Activity名'
runComponent = package + '/' + activity

print("launch App...")
device.startActivity(component=runComponent)

3.MonkeyImage

MonkeyImage類在測試過程中用來保存各種格式的測試截圖,並可以進行圖像對比。

 

常用方法

  • takeSnapshot() 進行屏幕截圖
  • writeToFile() 保存圖像文件到指定的文件路徑
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
from com.android.monkeyrunner import MonkeyImage as mi

print("connect devices...")

device=mr.waitForConnection()

print(" install app")
device.installPackage(r'C:\Users\Shuqing\Desktop\kaoyan3.1.0.apk')

print("launch app...")
package='com.tal.kaoyan'
activity='com.tal.kaoyan.ui.activity.SplashActivity'
runComponent=package+'/'+activity

device.startActivity(component=runComponent)
mr.sleep(3)


print("touch cancel button")
device.touch(618,895,'DOWN_AND_UP')
mr.sleep(1)


print("touch skip button")
device.touch(804,67,'DOWN_AND_UP')
mr.sleep(1)

print("input username and password")
device.touch(57,373,'DOWN_AND_UP')
mr.sleep(2)
device.type('zxw1234')

device.touch(152,480,'DOWN_AND_UP')
mr.sleep(2)
device.type('zxw123456')
mr.sleep(2)

print("touch login button")
device.touch(331,634,'DOWN_AND_UP')


print("takeSnapshot")
screenshot=device.takeSnapshot()
screenshot.writeToFile(r'D:\monkeyrunner\kyb.png','png')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章