monkeyrunner详细介绍以及编写简单的python脚本

monkeyrunner详细介绍以及编写简单的python脚本

ID:8972441

大小:73.00 KB

页数:9页

时间:2018-04-13

monkeyrunner详细介绍以及编写简单的python脚本_第1页
monkeyrunner详细介绍以及编写简单的python脚本_第2页
monkeyrunner详细介绍以及编写简单的python脚本_第3页
monkeyrunner详细介绍以及编写简单的python脚本_第4页
monkeyrunner详细介绍以及编写简单的python脚本_第5页
资源描述:

《monkeyrunner详细介绍以及编写简单的python脚本》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、MonkeyRunner:monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片,并将截图存储于工作站上。monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。monkeyrunner工具与用户界面/应用程序测试工具,也称为monkey工具并无关联。monke

2、y工具直接运行在设备或模拟器的adbshell中,生成用户或系统的伪随机事件流。而monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器。1、MonkeyRunner的特性1)多设备控制:monkeyrunnerAPI可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。2)功能测试:monkeyrunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事

3、件的输入数值,然后观察输出结果的截屏。3)回归测试:monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。4)可扩展的自动化:由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunnerAPI之外,您还可以使用标准的Pythonos和subprocess模块来调用如adb这样的Android工具。您还可以向monkeyrunnerAPI中添加您自己的类。我们将在使用插件扩展monkeyrunner一节中对此进行详

4、细讨论。2、一个简单的monkeyrunner程序实例以下为一个简单的monkeyrunner程序,它将会连接到一个设备,创建一个MonkeyDevice对象。使用MonkeyDevice对象,程序将安装一个Android应用包,运行其中一个活动,并向其发送按键事件。程序接下来会将结果截图,创建一个MonkeyImage对象,并使用这个对象截图将保存至.png文件。#导入此程序所需的monkeyrunner模块fromcom.android.monkeyrunnerimportMonkeyRunner,MonkeyDevice#连接当前设备,返回一个MonkeyD

5、evice对象device=MonkeyRunner.waitForConnection()#安装Android包,注意,此方法返回的返回值为boolean,由此您可以判断安装过程是否正常device.installPackage('myproject/bin/MyApplication.apk')#运行此应用中的一个活动device.startActivity(component='com.android.settings/.Settings')#按下菜单按键device.press('KEYCODE_MENU','DOWN_AND_UP')#截取屏幕截图res

6、ult=device.takeSnapShot#将截图保存至文件result.writeToFile('myproject/shot1.png','png')#获取指定区域的图像(200,400,200,400),注意两个括号result_static=result.getSubImage((200,400,200,400))#获取d:shotbegin.png这张图片picture=MonkeyRunner.loadImageFromFile('d:shotbegin.png','png')#第二截图并获取相同的局部图像result_static2=pict

7、ure.getSubImage((200,400,200,400))#使用.sameAs()对比两张图片,并输出对比结果True或Falseend=result_static.sameAs(result_static2,1.0)printendmonkeyrunner执行测试时使用.takeSnapshot()截图,默认截取整个屏幕,包含了系统的状态栏。真实手机状态栏中包含如电量/信号量/消息提示等变量,使用.sameAs()对比整个屏幕的截图时就很容易出现错误。而使用.getSubImage()获得局部图像,然后再进行对比,就减少了monkeyrunner执行结

8、果出错的概

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。