简介
monkeyrunner和monkey同样都是谷歌研发的测试工具
相比monkey用来做压力测试而言,monkeyrunner更偏重于点触式的UI自动化内容
monkeyrunner工具提供了API,使用这个API你可以通过写Android代码之外的程序来操作控制Android设备的
通过monkeyrunner,你可以通过写一个Python的程序来安装一个Android应用程序、运行该程序,给该程序发送键盘事件,截屏并且将截屏的内容保存特性
* 多设备控制:monkeyrunner的API可以跨多个设备实施测试套件
* 可扩展的自动化:
因为monkeyrunner是一个API工具包,你可以开发基于Python模块的整个系统来控制Android设备
monkeyrunner工具用的语言是Jython
可以使用Python语法来访问常量,类和API的方法
核心API
monkeyrunnerAPI于com.android.monkeyrunner包中包含三个模块:
1、MonkeyRunner
2、MonkeyDevice
3、MonkeyImage
MonkeyRunner:
入口类,为monkeyrunner程序提供工具方法的类。这个类提供了用于连接monkeyrunner至设备或模拟器的方法
常用的方法:
MonkeyRunner.waitForConnection(),方法的返回值是一个monkeydevice对象
MonkeyRunner.sleep()MonkeyDevice
表示一个设备或模拟器实例
这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序的方法
#唤醒屏幕
device.wake()
#重启设备
device.reboot()
#安装包
device.installPackage('myproject/bin/MyApplication.apk')
#卸载包
device.installPackage('myproject/bin/MyApplication.apk')
#启动一个活动
device.startActivity(component="your.www.com/your.www.com.TestActivity")
#输入文本
device.type('xxx')
#触摸事件
device.startActivity(component="your.www.com/your.www.com.TestActivity")
#按键事件
device.press(参数1:键码,参数2:触摸事件类型)
- MonkeyImage
表示一个截图对象
这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。
#截图并保存
result=device.takeSnapshot()
result.writeToFile('c:\shot1.png','png')