翻译 monkeyrunner和mongxiangsanguokey是一个软件吗

monkeyrunner 简介说明文档的中英文对照_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
monkeyrunner 简介说明文档的中英文对照
&&Android自动化测试经常会用到monkeyrunner,但是文档本来都是英文文档,不利于阅读。这个是一个翻译版本,可供参考。
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1052人阅读
android(39)
最近在复习之前的笔记,在回顾MonkeyRunner时看了看google官网的内容,写得不错,就翻译出来分享下。其实google官网真是一个学习的好地方。
MonkeyRunner工具提供了一个API用于在Android代码之外控制Android设备和模拟器。通过MonkeyRunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。
MonkeyRunner工具与monkey工具并无关联。monkey工具直接运行在设备或模拟器的adbshell中,生成用户或系统的伪随机事件流。而MonkeyRunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。
MonkeyRunner工具为Android测试提供了以下特性:
多设备控制:MonkeyRunner的API可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备,也可以一次启动全部模拟器,依据程序来依次连接到每个设备,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试。
功能测试:MonkeyRunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。
回归测试:MonkeyRunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。
可扩展的自动化:由于MonkeyRunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用MonkeyRunner的API之外,您还可以使用标准的Python os和subprocess模块来调用如adb这样的Android工具。
您还可以向MonkeyRunnerAPI中添加您自己的类。我们将在后面会对此进行详细讨论。
MonkeyRunner工具使用Jython(使用Java编程语言的一种Python实现)。Jython允许MonkeyRunner API与Android框架轻松的进行交互。使用Jython,您可以使用Python语法来获取API中的常量、类以及方法。
一个简单的MonkeyRunner程序实例
以下为一个简单的MonkeyRunner程序,它将会连接到一个设备,创建一个MonkeyDevice对象。使用MonkeyDevice对象,程序将安装一个Android应用包,运行其中一个活动,并向其发送按键事件。程序接下来会将结果截图,创建一个MonkeyImage对象,并使用这个对象截图将保存至.png文件。
# 导入此程序所需的MonkeyRunner模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# 连接当前设备,返回一个MonkeyDevice对象
device = MonkeyRunner.waitForConnection()
# 安装Android包,注意,此方法返回的返回值为boolean,由此您可以判断安装过程是否正常
device.installPackage('myproject/bin/MyApplication.apk')
# 运行此应用中的一个活动 device.startActivity(component='com.example.android.myapplication.MainActivity')
# 按下菜单按键
device.press('KEYCODE_MENU','DOWN_AND_UP')
# 截取屏幕截图
result = device.takeSnapShot
# 将截图保存至文件
result.writeToFile('myproject/shot1.png','png')
MonkeyRunner 的API
MonkeyRunner 在com.android.monkeyrunner包中总共包含三个模块:
MonkeyRunner:一个为monkeyrunner程序提供工具方法的类。这个类提供了用于连接monkeyrunner至设备或模拟器的方法。它还提供了用于创建一个monkeyrunner程序的用户界面以及显示内置帮助的方法。
MonkeyDevice
:表示一个设备或模拟器。这个类提供了安装和卸载程序包、启动一个活动以及发送键盘或触摸事件到应用程序的方法。您也可以用这个类来运行测试包。
MonkeyImage
:表示一个截图对象。这个类提供了截图、将位图转换成各种格式、比较两个MonkeyImage对象以及写图像到文件的方法。
在python程序中,您将以Python模块的形式使用这些类。monkeyrunner工具不会自动导入这些模块。您必须使用类似如下的from语句:
fromcom.android.monkeyrunner import
其中,为您想要导入的类名。您可以在一个from语句中导入超过一个模块,其间以逗号分隔。
运行MonkeyRunner
您可以直接使用一个代码文件运行MonkeyRunner,抑或在交互式对话中输入MonkeyRunner语句。不论使用哪种方式,您都需要调用SDK目录的tools子目录下的MonkeyRunner命令。如果您提供一个文件名作为运行参数,则MonkeyRunner将视文件内容为Python程序,并加以运行;否则,它将提供一个交互对话环境。
MonkeyRunner命令的语法为:
monkeyrunner -plugin
-plugin : (可选)指定一个内含MonkeyRunner插件的.jar文件。欲了解更多关于monkeyrunner插件的内容,参考下文。要指定多个文件,可以多次使用此参数。
&程序文件名&:
如果您指定此参数,MonkeyRunner将视文件内容为Python程序并予以执行。如果此参数未予指定,则开启一个交互式会话。
&程序选项&:(可选)&程序文件名&中所指定的程序所需的参数。
MonkeyRunner提供帮助
您可以用以下命令来生成monkeyrunner的API参考:
monkeyrunner
参数说明:
可以为text或html,分别代表纯文本和HTML输出。
指定了输出文件的全路径名称。
使用插件扩展MonkeyRunner
您可以用Java语言创建新的类,并打包成一个或多个.jar文件,以此来扩展 MonkeyRunner API。您可以使用您自己写的类或者继承现有的类来扩展MonkeyRunner API。您还可以使用此功能来初始化MonkeyRunner环境。
为了使MonkeyRunner加载一个插件,您应当如使用如前面所述的-plugin参数来调用MonkeyRunner命令。
在您编写的插件中,您可以导入或继承位于com.android.monkeyrunner包中的几个主要的monkeyrunner类:MonkeyDevice, MonkeyImage和MonkeyRunner。
请注意,插件无法让你访问Android的SDK。您不能导入com.android.app等包。这是因为monkeyrunner是在框架API层次之下与设备或模拟器进行交互的。
插件启动类
用于插件的.jar文件可以指定一个类,使其在脚本执行之前就实例化。如欲指定这个类,您需要在.jar文件的manifest中添加键 MonkeyRunnerStartupRunner。其值为启动时运行的类的名称。以下代码段显示了如何在一个ant构建脚本达到这样的目的:
jarfile="myplugin" basedir="${build.dir}"&
name="MonkeyRunnerStartupRunner" value="com.myapp.myplugin"/&
如欲访问MonkeyRunner的运行时环境,启动类可以实现mon.base.Predicate。例如,用这个类在默认的命名空间中设置一些变量:
package com.android.
import mon.base.P
import org.python.util.PythonI
public class Main implements Predicate {
public boolean apply(PythonInterpreter anInterpreter) {
anInterpreter.set("newtest", "enabled");
anInterpreter.set("use_emulator", 1);
return true;
MonkeyRunner到此翻译完,用好自动化测试框架对android开发有很大帮助。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:99210次
积分:1430
积分:1430
排名:千里之外
原创:37篇
评论:33条
Name: Linxj
文章:10篇
阅读:30720
文章:34篇
阅读:88101
(1)(3)(5)(3)(5)(7)(6)(3)(1)(3)(2)(1)(4)测试工具之monkeyrunner(6)
最近在学习monkeyrunner,有一点心得,总结出来,纯属个人分析,如果有不准确的地方还请指正
关于monkeyrunner的简介,E文好的盆友可以到官方网站看看介绍,看E文头疼的盆友就请参见译言的中文介绍了,翻译的很准确
本文想要分析一下monkeyrunner和python之间的关系
对于测试者来说,最先接触的就是python脚本,所以第一印象是monkeyrunner是一个python写的工具,其实不然,monkeyrunner是一个彻头彻尾的java工具。我们从monkeryrunner的启动文件ANDROID_SDK_PATH\tools\monkeyrunner.bat中我们可以看出
call %java_exe% -Xmx512m -Djava.ext.dirs=%frameworkdir%;%swt_path% -Dcom.android.monkeyrunner.bindir=..\framework -jar %jarpath% %*
其最终调用的是monkeyrunner.jar。
那为什么不用java直接写class来测试而要用python脚本写测试case呢?
个人观点----这是我认为非常好的地方,写class和python脚本对于测试工程师来说,很明显python脚本更容易上手,门槛也低。容易推广,而且python丰富的第三方库,也有很好的扩展性。但是目前带来的问题是debug的问题。因为其执行的顺序是monkeyrunner.jar-&jython-&python script。所以在eclips中,无论我们指定monkeyrunner.jar,还是jython.jar作为脚本的解释器,都是无法进行debug调试的。我们只有在jython的解释器控制台中,逐条的输入命令来调试,很麻烦,我上一篇文章中列出了外国专家给出的一种设置方法,经证实只在ubuntu上生效,有人说在windows上也可以,但是我在windows
7上一直都不行。
对于简单的脚本我们可以这么调试,但是脚本复杂后, 这样调试的确还是很不方便,期待android 4.0推出之后能有一个大的进步
文章来源:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:214771次
积分:2673
积分:2673
排名:第13583名
转载:259篇
评论:12条
(2)(2)(5)(21)(1)(5)(3)(5)(1)(4)(2)(4)(7)(11)(28)(20)(35)(100)(14)}

我要回帖

更多关于 mongkeyrunner 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信