Android自动化测试------monkeyrunner(六)
monkeyrunner
1.简介
monkeyrunner即android SDK中自带的工具之一,此工具提供API可按制android设备或模拟器。
monkeyrunner提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。
monkeyrunner工具的主要目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。
monkeyrunner路径:Android SDK\tools
2.Monkeyrunner工具特性
多设备控制:monkeyrunner API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。
功能测试:monkeyrunner可以为一个应用自动化功能测试。为您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用如adb这样的Android工具。
3.Monkeyrunner工具同Monkey工具的差别
Monkey:Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流。
Monkeyrunner:Monkeyrunner工具是在工作站上通过API定义的特定命令和事件控制设备或模拟器。
4.MonkeyRunner API
MonkeyRunner工具主要有3个类:
1.MonkeyRunner
2.MonkeyDevice
3.MonkeyImage
4.1MonkeyRunner类
monkeyrunner提供连接真机和模拟器,输入,暂停,警告框等方法。
alert():警告框
choice():选项列表框
help():API帮助文档
input():输入
sleep():暂停
waitForConnection():等待设备连接
常用方法:
waitForConnection(float timeout,string deviceID)
float timeout:等待时间(超过等待时间会超时)
string deviceID:设备的ID
4.2 MonkeyDevice类
MonkeyDevice类提供了安装和卸载程序包,开启Activity,发生按键和点击事件,运行测试包等方法
broadcastIntent():发送广播
drag():拖动
getProperty():获取当前设备属性
getSystemProperty():获取当前设备属性
installPackage():安装应用
instrument():执行测试用例
press():按键
reboot():重启
removePackage():删除指定Package
shell():执行命令
startActivity():启动应用
touch():点击
常用方法:
installPackage(string path)
removePackage(string package)
startActivity()
touch(integer x,interger y,interger type)
touch参数说明:
integer x:x坐标值
interger y:y坐标值