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相关推荐

  1. monkey命令_何小伟:Monkey与MonkeyRunner区别

    为了支持黑盒自动化测试的场景,Android SDK提供了monkey和monkeyrunner两个测试工具,这两个测试工具除了名字类似外,还都可以向待测应用发送按键等消息,往往容易产生混淆,以下是他 ...

  2. 老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 1...

    老李推荐:第14章4节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-端口转发 在初始化HierarchyViewer的实例过程中, ...

  3. MonkeyRunner实例及使用说明

    文章转自: http://www.ishow.me/2013/02/06/1035/.html 了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏 ...

  4. MonkeyRunner的使用二

    MonkeyRunner可以用来做自动化测试,在Android中做动态分析的时候也可以使用它来做行为触发. 不过感觉使用MonkeyRunner来做行为触发还是很局限的.就比如我想实现外界向模拟器拨打 ...

  5. MonkeyRunner 的使用一

    MonkeyRunner的使用 如果您的英语不错那您可以自己看官网的介绍,如果您需要翻译,其实网上有很多很好的翻译,但是为了学习的完整性,自己还是做了一些重复性的劳动. http://develope ...

  6. [转] android自动化之MonkeyRunner测试环境配置(一)

    Android自动化测试之MonkeyRunner 一.Android自动化测试之环境搭建 1.1  Android-sdk介绍 ¢ SDK(Software development kit)软件开发 ...

  7. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用 1...

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用 上一节我们描述了monkey的命令处理入口函数run是如何调用optionPro ...

  8. 【转】monkeyrunner学习总结二:连接、安装、启动

    一.获取packageName与startActivity 前置条件:已成功安装配置SL4A并连接PC调试(参见:monkeyrunner学习总结一:环境搭建:http://www.amsoft.cn ...

  9. 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...

    老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例 在上一节的第一个"增加日记"的示例中,我们并没有看到日记 ...

  10. android主流开源自动化框架(monkeyrunner,robotium,uiautomator

    2019独角兽企业重金招聘Python工程师标准>>> android自动化框架: Uiautomator: 优点:可以对所有操作进行自动化,操作简单:缺点:Android版本需要高 ...

最新文章

  1. Windows 2000、XP、XP+进程名描述
  2. spring-gateway(一)Reactor编程基础
  3. 英特尔将Nervana技术融入产品路线图
  4. axios的get与post
  5. 微x怎么设置主题_红人堂:抖音直播预告文案怎么写?5个小技巧提高你的文案吸引力!...
  6. ES2019 的新功能 flat()
  7. zz 聊聊并发(二)
  8. VBA读取word中的内容到Excel中
  9. Map转json遇到一些问题
  10. 学校实训密码锁设计(基于STC51单片机)报告
  11. 串口通信以及波特率计算方法
  12. 小学四年级计算机在线考试,小学信息技术四年级下册试题.DOC
  13. kali2021安装RTL8188GU无线网卡[TL-WN726N]驱动
  14. TCR宝藏级隐藏项目National Writing Board
  15. 樱道,空蝉,雨空,夏恋,雨道,彩月,幻昼,惊梦,白夜。这些纯音乐
  16. MySQL在服务里找不到(未卸载)
  17. cropper封装的头像裁剪尺寸插件
  18. cdh hive配置mysql_Hive学习(CDH版Hadoop、Hive安装)
  19. leaflet绘制图形,wkt模式与geoJson互转
  20. torch.chunk与nn.Conv2d groups

热门文章

  1. JS(微信小程序)处理银行卡号
  2. 激活策略 查询_苹果Apple Search Ads搜索竞价广告全攻略——从入门到运营优化策略 推广人员不得不看...
  3. u盘文件被隐藏了怎么显示出来?数据丢失也能找回
  4. oracle 11g密码永不过期
  5. html form表单提交后处理返回数据
  6. 实战-Android 系统设置无线/有线优先连接
  7. 21.Lock锁原理
  8. 2003服务器端口修改器,win2003 远程桌面端口修改方法(注册表)
  9. 12306火车刷票(python练习题)
  10. 骨传导耳机哪款好、最适合运动的五款骨传导耳机