初识monkeyrunner

本文详细介绍了monkeyrunner工具,它是用于控制Android设备或模拟器的API工具包。通过monkeyrunner,可以编写Python程序来安装、测试应用程序,发送按键事件,以及捕获用户界面的截图等。此外,还介绍了其主要功能如多设备控制、功能测试、回归测试及自动化扩展能力。

1、monkeyrunner是什么

monkeyrunner工具为写程序提供API,这些程序用于独立与安卓代码之外来控制安卓设备或者模拟器。使用monkeyrunner,你可以编写python程序,然后安装安卓应用或者测试包,运行它,向它发送按键,截取其UI的截图,并存储在工作站上。monkeyrunner工具当初用于测试程序或者功能、框架层面的运行测试集,当然你也可以随意用于其他目的。

monkeyrunner工具和monkey无关,但是还是被认为是monkey工具,monkey是直接运行在设备或者模拟器的adb shell,并随机产生用户或者系统事件。相比来说,monkeyrunner工具从工作站通过api向模拟器或者终端发送指定的命令或者事件。


2、能做什么和局限

* 多设备控制

其API可以向多个设备或者模拟器执行一个或者多个测试套。可以一次性绑定多个物理终端或者模拟器,彼此链接,然后运行测试集合。当然也可以使用程序启动模拟器的配置,运行测试,关掉模拟器。

*功能测试

可以针对安卓应用运行自动化测试,你只要输入按钮或者点击事件的属性值,然后通过截图查看结果。

*回归测试

可以稳定运行程序去测试应用,然后将输出的截图与已知的截图进行比对

*可扩展自动化

monkeyrunner是api工具包,你完全可以开发基于python的完整模块或者程序来控制安卓设备,除了利用monkeyrunner的api本身,也可以使用python标准库模块os和subprocess来调用安卓工具,比如adb。

也可以添加自己的类到monkeyrunner的api里。

monkeyrunner使用JPython。一直使用java编程语言的一种python实现,jpython使得monkeyrunner的api与安卓框架直接交互,通过jpython,你可以使用python语法来使用变量、类以及api的方法。


3、Monkeyrunner的api

*Monkeyrunner:monkeyrunner程序的方法类,提供了与设备或者模拟器连接的方法。同时提供了UI和显示内置帮助的方法。

*MonkeyDevice:代表设备或者模拟器,该类提供安装、卸载包,启动活动、向应用发送按键或者触摸时间。同时也可以使用这个类运行测试包。

*MonkeyImage:代表屏幕截图,该类提供抓取屏幕,从位图格式转化为其他多种格式,比对两个截图对象,并将图像写入到文件中。

备注:

在python程序中,你作为一个python模块访问每一个类,monkeyrunner没有自动导入这些模块,为了导入模块,需要使用python语句;

from com.android.monkeyrunner import <module>

4、运行monkeyrunner

运行monkeyrunner,又两种方式,1:通过文件运行 2、交互绘画中输入monkeyrunner语句

或者再sdk路径下的/tools文件夹李直接点击出发monkeyrunner命令;如果提供一个文件作为参数,monkeyrunner将把它作为python程序运行其内容;或者启动一个交互会话;

命令语法:

monkeyrunner -plugin <jar> <program_filename> <program_options>

参数说明:

-plugin <jar> 可选,为monkeyrunner指定一个包含插件的jar文件,指定多个jar文件,则多次使用该语句。

<program_filename>

如果提供了这个语句,monkeyrunner将其作为python程序运行其内容;无指定,则启动交互会话窗口;

<program_options>可选,者程序文件中的语句或者标志









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值