Monkeyrunner
monkeyrunner工具与monkey工具是不相关的 Monkey工具在adb shell环境下运行直接对设备或模拟器发送的用户和系统事件的随机流。相比较而言,monkeyrunner工具通过API控制设备和仿真发送特定命令和事件。
monkeyrunner工具提供针对Android测试独特的功能:
- 多设备控制:
monkeyrunnerAPI可以跨多个设备或模拟器实施测试套件。可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。 - 功能测试:
monkeyrunner可以为一个应用自动贯彻一次功能测试。提供按键或触摸事件的输入数值,然后观察输出结果的截屏。 - 回归测试:
monkeyrunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。 - 可扩展的自动化:
由于monkeyrunner是一个API工具包,您可以基于Python模块和程序开发一整套系统,以此来控制Android设备。除了使用monkeyrunner API之外,您还可以使用标准的Python os和subprocess模块来调用AndroidDebug Bridge这样的Android工具。
monkeyrunner工具用Jython来实现控制,Jython是使用Java编程语言一个eclipse插件,该插件是提供Python开发环境。 Jython允许monkeyrunnerAPI与Android框架轻松互动。使用Jython,可以用Python语法来访问常量,类和API的方法。
- 导入模块
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage - 连接当前设备,并返回一个MonkeyDevice的对象
device=MonkeyRunner.waitForConnection(10,‘DeviceName’)
此时device为MonkeyDevice的实例对象 - 唤醒设备(即亮屏的意思)
device.wake() - 模拟拖拽(实现滑动解锁)
device.drag(start,end,duration,steps)
start:拖曳开始坐标
end:拖曳结束坐标点
duration:持续时间
steps:拖曳步骤 - 运行apk中指定的关键活动
device.startActivity(component=runComponent)
设置一个变量用来保存apk的内部名称
package = ‘com.example.android.myapplication’
设置一个变量用来保存apk中的关键活动名称
activity = ‘com.example.android.myapplication.MainActivity’
设置一个变量用来保存开始活动的运行组件名称
runComponent = package + ‘/’ + activity - 触屏(点击屏幕)
device.touch(x,y,“DOWN_AND_UP”) - 延时(秒)
MonkeyRunner.sleep(time/s) - 按键
device.press(‘KEYCODE_BACK’,‘DOWN_AND_UP’)
- 获取结果截屏图片
result = device.takeSnapshot() - 保存截屏图片到指定文件夹,图片格式为png
result.writeToFile(‘myproject/shot1.png’,‘png’) - 关闭程序的adb命令
adb shell am force-stop “package”
这种方法会强制停止APP进程,不会清除APP进程在系统中产生的数据
adb shell pm clear “package”
这种方法不仅会停止APP进程,而且会清除这个APP进程产生的所有数据
import os
command=“adb shell am force-stop %s”
os.system(command %(“package”))
Monkeyrunner相关推荐
- monkey命令_何小伟:Monkey与MonkeyRunner区别
为了支持黑盒自动化测试的场景,Android SDK提供了monkey和monkeyrunner两个测试工具,这两个测试工具除了名字类似外,还都可以向待测应用发送按键等消息,往往容易产生混淆,以下是他 ...
- 老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 1...
老李推荐:第14章4节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-端口转发 在初始化HierarchyViewer的实例过程中, ...
- MonkeyRunner实例及使用说明
文章转自: http://www.ishow.me/2013/02/06/1035/.html 了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏 ...
- MonkeyRunner的使用二
MonkeyRunner可以用来做自动化测试,在Android中做动态分析的时候也可以使用它来做行为触发. 不过感觉使用MonkeyRunner来做行为触发还是很局限的.就比如我想实现外界向模拟器拨打 ...
- MonkeyRunner 的使用一
MonkeyRunner的使用 如果您的英语不错那您可以自己看官网的介绍,如果您需要翻译,其实网上有很多很好的翻译,但是为了学习的完整性,自己还是做了一些重复性的劳动. http://develope ...
- [转] android自动化之MonkeyRunner测试环境配置(一)
Android自动化测试之MonkeyRunner 一.Android自动化测试之环境搭建 1.1 Android-sdk介绍 ¢ SDK(Software development kit)软件开发 ...
- 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用 1...
老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用 上一节我们描述了monkey的命令处理入口函数run是如何调用optionPro ...
- 【转】monkeyrunner学习总结二:连接、安装、启动
一.获取packageName与startActivity 前置条件:已成功安装配置SL4A并连接PC调试(参见:monkeyrunner学习总结一:环境搭建:http://www.amsoft.cn ...
- 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...
老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例 在上一节的第一个"增加日记"的示例中,我们并没有看到日记 ...
- android主流开源自动化框架(monkeyrunner,robotium,uiautomator
2019独角兽企业重金招聘Python工程师标准>>> android自动化框架: Uiautomator: 优点:可以对所有操作进行自动化,操作简单:缺点:Android版本需要高 ...
最新文章
- Windows 2000、XP、XP+进程名描述
- spring-gateway(一)Reactor编程基础
- 英特尔将Nervana技术融入产品路线图
- axios的get与post
- 微x怎么设置主题_红人堂:抖音直播预告文案怎么写?5个小技巧提高你的文案吸引力!...
- ES2019 的新功能 flat()
- zz 聊聊并发(二)
- VBA读取word中的内容到Excel中
- Map转json遇到一些问题
- 学校实训密码锁设计(基于STC51单片机)报告
- 串口通信以及波特率计算方法
- 小学四年级计算机在线考试,小学信息技术四年级下册试题.DOC
- kali2021安装RTL8188GU无线网卡[TL-WN726N]驱动
- TCR宝藏级隐藏项目National Writing Board
- 樱道,空蝉,雨空,夏恋,雨道,彩月,幻昼,惊梦,白夜。这些纯音乐
- MySQL在服务里找不到(未卸载)
- cropper封装的头像裁剪尺寸插件
- cdh hive配置mysql_Hive学习(CDH版Hadoop、Hive安装)
- leaflet绘制图形,wkt模式与geoJson互转
- torch.chunk与nn.Conv2d groups
热门文章
- JS(微信小程序)处理银行卡号
- 激活策略 查询_苹果Apple Search Ads搜索竞价广告全攻略——从入门到运营优化策略 推广人员不得不看...
- u盘文件被隐藏了怎么显示出来?数据丢失也能找回
- oracle 11g密码永不过期
- html form表单提交后处理返回数据
- 实战-Android 系统设置无线/有线优先连接
- 21.Lock锁原理
- 2003服务器端口修改器,win2003 远程桌面端口修改方法(注册表)
- 12306火车刷票(python练习题)
- 骨传导耳机哪款好、最适合运动的五款骨传导耳机