Monkeyrunner 简介及其环境搭建

  Monkeyrunner是通过坐标、控件ID和控件上的文字操作应用的界面元素,其测试用例是用python写的,这样就弥补了monkey只有简单命令无法执行复杂用例的缺陷。Monkeyrunner采用的是客户端服务器的架构,运行在PC上,逐行解释Python代码,将命令发送到Android设备上,既可以手动编写,也可以使用录制回放方式编写测试用例。

  虽然monkeyrunner脚本是使用python编写的,但它实际上是通过Jython来解释执行的。Jython是Python的Java实现,它将Python代码解释成功Java虚拟机上的字节码来执行。这种做法允许在Python中继承一个Java类型,可以调用任意的Java API,也可以复用Java虚拟机自带的垃圾回收机制等。

  Monkeyrunner中的API由com.android.monkeyrunner命名空间中的三个类MonkeyrunnerMonkeyDeviceMonkeyImage组成。

   1.MonkeyRunner

  提供连接到设备或者模拟器的方法,也提供了为monkeyrunner脚本创建UI界面的一些函数,最常用的函数是waitForConnection:

MonkeyDevice waitForConnetion(float timeout_seconds, string deviceId) 即该函数返回MonkeyDevice对象

   2.MonkeyDevice

  代表一个设备或模拟器,主要封装如安装/卸载应用,启动活动,向应用发送按键或触摸消息等操作,常见API如下。

  1) void installPackage(string path)

  path是PC端的apk路径

  2) void press(string KeyEvent, dictionary type)

  敲击一个按键,type只能是DOWN、UP 或DOWN_AND_UP

  3) void removePackage(string package)

  卸载应用,package为应用的包名,而不是文件名。

  4) void startActivity(string url, string action, string data, string mimetype, iterable categories dictionary extras, component component, iterable flags)

  启动一个活动,而不是一个应用。

  url: 启动活动的意图对象的URL,参看Intent.setData()函数;

  action: 启动活动的意图对象的动作,参看Intent.setAction()函数;

  data: 启动活动的意图对象的数据URL,参看Intent.setData()函数;

  mimetype: 启动活动的意图对象的MIME类型,参看Intent.setType()函数;

  categories: 意图对象种类集合,参看Intent.addCategory()函数;

  extras: 根据启动活动的要求,意图对象所需携带的额外数据,参看Intent.putExtra()函数;

  component: 要启动的组件的全名,组件的全名由应用的包名和组件的类名组成;

  flags: 意图对象的标志集合,参考Intent.setFlag()函数;

  5) MonkeyImage takeSnapshot()

  为设备截图,返回一个MonkeyImage对象。

  6) void touch(integer x, integer y, string type)

  发送触摸消息。

  x: x坐标;

  y: y坐标;

  type: 要发送的触摸事件类型,只能是DOWN、UP或DOWN_AND_UP;

  7) void type(string message)

  输入一个字符串。

  8) void wake()

  唤醒设备

  3. MonkeImage

  这个类型主要封装屏幕抓图,将图片在不同格式间转换,对比两个图片等操作。

Monkeyrunner简单介绍完了,接下来就是环境搭建了。既然要做monkeyrunner测试,android 环境(Android SDK)必须是搭好的, JAVA环境(JDK)也必须是搭好的,这个应该不用赘述了吧。

Monkeyrunner是基于python的,所以要安装python的编译器:

下载地址:https://www.python.org/downloads/

如果各方面都安装好了,  那monkeyrunner就可以运行了,monkeyrunner是集成在Android SDK中的,目录是:*adt-bundle-windows-x86-20130917sdk oolsmonkeyrunner.bat

直接cd到:*adt-bundle-windows-x86-20130917sdk ools,之后输入monkeyrunner,如下:

C:adt-bundle-windows-x86-20130917sdk ools>monkeyrunner
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35)
[Java HotSpot(TM) Client VM (Oracle Corporation)] on java1.8.0_31
>>>

则monkeyrunner环境搭建完成。

提醒广大学习者必须把monkeyrunner相关的脚本都放在"*adt-bundle-windows-x86-20130917sdk ools"目录中,而且运行.py文件都使用绝对路径,否则执行过程中可能会出错!

可以参考如下博客:http://blog.csdn.net/shy871265996/article/details/9716569

原文地址:https://www.cnblogs.com/yajing-zh/p/4351245.html