新闻资讯

ACTIVITY PRESENTATION

使用 MonkeyRunner 进行自动化测试
来源: | 作者:pmod26ea5 | 发布时间: 2019-06-24 | 13735 次浏览 | 分享到:
monkeyrunner 是 SDK.tools 下的一个 .bat 文件,是 Android 自带的工具。配合 py 脚本可以模拟手机点击、拖拽、功能键等的实现,然后可以观察截图自己比较。只要你事先写好脚本,一系列动作
monkeyrunner 是 SDK.tools 下的一个 .bat 文件,是 Android 自带的工具。配合 py 脚本可以模拟手机点击、拖拽、功能键等的实现,然后可以观察截图自己比较。只要你事先写好脚本,一系列动作
这篇文章记录一下 Monkeyrunner 的使用。因为本人也是刚接触,如有错漏,请指正。
准备
.
python 基础。
.
说是基础,会点基本用法循环条件就差不多了。有语言基础的话还是很快入门的。我当时是看菜鸟教程,配一下环境就行了。
.
.
JDK、SDK 环境
.
.
monkeyrunner
.
monkeyrunner 是 SDK.tools 下的一个 .bat 文件,是 Android 自带的工具。配合 py 脚本可以模拟手机点击、拖拽、功能键等的实现,然后可以观察截图自己比较。只要你事先写好脚本,一系列动作,他就能模拟运行,达到自动化测试的目的。
.
如果目录下没有,可能你是AS下的SDK,那么应该在 tools.bin 目录下。
.
monkeyrunner 方法
导入需要的模块
主要包括三个模块
1、MonkeyRunner:这个类提供了用于连接monkeyrunner和设备或模拟器的方法,它还提供了用于创建用户界面显示提供了方法。
2、MonkeyDevice:代表一个设备或模拟器。这个类为安装和卸载包、开启Activity、发送按键和触摸事件、运行测试包等提供了方法。
3、MonkeyImage:这个类提供了捕捉屏幕的方法。这个类为截图、将位图转换成各种格式、对比两个MonkeyImage对象、将image保存到文件等提供了方法。
#引入模块from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage#或者给模块起别名,引用的时候就不用写全称。#但是引用了别名就不能使用原来的名字了,否则报错import sysfrom com.android.monkeyrunner import MonkeyRunner as mrfrom com.android.monkeyrunner import MonkeyDevice as mdfrom com.android.monkeyrunner import MonkeyImage as mi#比如连接设备或模拟器,起了以上别名后,命令应该如下:
device=mr.waitForConnection()
启动活动
启动活动要先连接设备,就是上面 waitForConnection() 的代码。然后就是要调用
device.startActivity(component="/.")#或者
device.startActivity(component="/.")`
自己开发的可以去查看 Manifest 文件,不是自己开发的软件,我查了一下。用了同是 SDK.tools 下的 Android 自带的工具:hierarchyviewer.bat 或者用重签名工具,在这里不累述了,一查就知道。
得到包名和活动名,你就可以进行自动化测试了。
方法
点击
#在指定位置发送触摸事件 #device.touch(x,y,触摸事件类型)#x,y的单位为像素#触摸事件类型,请见下文中Findyou对device.press描述
 
device.touch(520,520,'DOWN_AND_UP')
发送到指定键的一个关键事件
#device.press(参数1:键码,参数2:触摸事件类型)#参数1:见android.view.KeyEvent#参数2,如有TouchPressType()返回的类型-触摸事件类型,有三种。#1、DOWN 发送一个DOWN事件。指定DOWN事件类型发送到设备,对应的按一个键或触摸屏幕上。#2、UP 发送一个UP事件。指定UP事件类型发送到设备,对应释放一个键或从屏幕上抬起。#3、DOWN_AND_UP 发送一个DOWN事件,然后一个UP事件。对应于输入键或点击屏幕。