MonkeyRunner读取本机图片进行对比loadImageFromFile

上一篇文章介绍了使用monkeyrunner截取指定区域的图像并进行对比,日常使用中大多数时候需要读取本机的图片和monkeyrunner的截图进行对比。

MonkeyRunner.loadImageFromFile(‘./shot.png’)方法可以实现读取本地图片供MonkeyRunner使用的功能,参数是本地图片路径。需要特别注意loadImageFromFile的大小写,否则会出现AttributeError的提示。

monkeyrunner对比屏幕局部图像.getSubImage()

monkeyrunner执行测试时使用.takeSnapshot()截图,默认截取整个屏幕,包含了系统的状态栏。真实手机状态栏中包含如电量/信号量/消息提示等变量,使用.sameAs()对比整个屏幕的截图时就很容易出现错误。而使用.getSubImage()获得局部图像,然后再进行对比,就减少了monkeyrunner执行结果出错的概率。
monkeyrunner使用getSubImage()获取截图局部图像,示例如下:

MonkeyRunner连接指定设备

MonkeyRunner支持多设备控制,电脑连接多个设备或开启多个Android模拟器时,MonkeyRunner连接并操纵指定设备的方法如下:

首先命令行中运行adb devices 查看可连接的设备列表

device=MonkeyRunner.waitForConnection(6,’emulator-5554′)
参数1:超时时间,单位秒,浮点数,默认是无限期地等待。

查看Android应用包名package和入口activity名称

使用android自动化测试工具monkeyrunner启动应用时,需要填写被测程序的包名和启动的Activity,以下有两种查看应用包名package和入口activity名称的方法:

方法一:使用aapt

1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk

2.运行后的结果中以下两行分别是应用包名package和入口activity名称