MonkeyRunner工具主要有三个类:
MonkeyRunner提供连接真机和模拟器、输入、暂停、警告框等方法。
waitForConnection(float timeout,string deviceid),
from com.android.monkeyrunner import MonkeyRunner as mr
("connect devices...")
device=mr.waitForConnection()
# device=mr.waitForConnection(5,‘127.0.0.1:62001‘)
MonkeyDevice类提供了安装和卸载程序包、开启Activity、发送按键和点击事件、运行测试包等方法。
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类型的(x,y)坐标点。
tuple end,拖拽终点位置,为tuple类型的(x,y)坐标点。
float duration,拖拽手势持续时间,默认为1.0s。
-integer steps,插值点的步数,默认值为10。
连接设备,安装考研帮App并启动
kyb_start.py
fromcom.android.monkeyrunnerimportMonkeyRunnerasmr
fromcom.android.monkeyrunnerimportMonkeyDeviceasmd
print("connect devices...")
device=mr.waitForConnection()
print("install app...")
device.installPackage(r‘C:\Users\kaoyan3.1.0.apk‘)
package =‘com.tal.kaoyan‘
activity =‘com.tal.kaoyan.ui.activity.SplashActivity‘
runComponent = package +‘/‘+ activity
print("launch App...")
device.startActivity(component=runComponent)
代码执行方式
monkeyrunner scripfile
C:\Users>monkeyrunner C:\monkeyrunner_script\kyb.py
MonkeyImage类在测试过程中用来保存各种格式的测试截图,并可以进行图像对比。
fromcom.android.monkeyrunnerimportMonkeyImageasmi
print("takeSnapshot")
screenshot=device.takeSnapshot()
screenshot.writeToFile(r‘C:\monkeyrunner_script\test.png‘,‘png‘)
kyb_login.py
fromcom.android.monkeyrunnerimportMonkeyRunnerasmr
fromcom.android.monkeyrunnerimportMonkeyDeviceasmd
fromcom.android.monkeyrunnerimportMonkeyImageasmi
print("connect devices...")
device=mr.waitForConnection()
print(" install app")
device.installPackage(r‘C:\Users\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‘C:\monkeyrunner\kyb.png‘,‘png‘)
方法调用
AttributeError:typeobject‘com.android.monkeyrunner.XXXXX‘hasnoattribute XXXXXX
检查调用的方法名,特别是注意区分大小写。
字符编码
SyntaxError: Non-ASCII characterinfile‘C:\monkeyrunner_script\kyb.py‘,butno encoding declared;
需要在代码顶部补充 # -- coding: utf-8 -- 或者去掉代码中的中文字符
#本文源于网络学习汇总,如有侵权请联系第一时间删除#
原文:https://www.cnblogs.com/czb4256/p/10486125.html