monkeyrunner

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

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

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

Tags:

Posted in android, 系统OS | No Comments »

获取.touch()/getSubImage()等方法坐标点参数值

monkeyrunner中使用.touch()/getSubImage()等方法时都需要使用坐标点,介绍如下两个获取Android手机屏幕坐标点数值的方法:

方法一:使用Pixel Perfect

sdk\tools目录打开monitor.bat,点击android debug monitor窗口右上角的Open

Tags:

Posted in android, 系统OS | No Comments »

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

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

Tags:

Posted in android, 系统OS | No Comments »

monkeyrunner对比两张截图.sameAs()

monkeyrunner执行测试时使用.sameAs()对比截图,获得测试结果,本例中newpic.sameAs(pic,1.0),将newpic和pic两张图片进行对比,1.0是百分比表示精确度,取值范围“0.0-1.0”

#第一个截图
pic=device.takeSnapshot()

#第二截图
newpic=device.takeSnapshot()

Tags:

Posted in android, 系统OS | No Comments »

MonkeyRunner连接指定设备

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

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

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

Tags: ,

Posted in android, 系统OS | No Comments »

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

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

方法一:使用aapt

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

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

Tags: ,

Posted in android, 系统OS | No Comments »

monkeyrunner.bat运行python脚本/命令行

今天折腾了一把monkeyrunner,分别使用命令行和python连接monkeyrunner:

命令行连接monkeyrunner测试:

1.打开android的模拟器,或将android手机连接到电脑

2.运行monkeyrunner.bat,接下来就可以在打开的命令行窗口中输入命令。

Tags: ,

Posted in android, 系统OS | No Comments »