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

1.monkey运行在设备或者模拟器上边,可以脱离PC运行,其运行时如下图所示。

而monkeyrunner运行在PC上,需要通过服务器/客户端的的模式向设备或者模拟器上的android应用发送指令来执行测试,其运行时如下图所示。

2.普遍的做法是将monkey作为一个向待测应用发送随机按键消息的测试工具,验证待测应用在这些随机性的输入面前是否会有闪退或者崩溃。而monkeyrunner则接受一个明确的测试脚本(使用python语言编写的)。

3.虽然monkey也可以根据一个指定的命令脚本发送按键消息,但其不支持条件判断,也不支持读取界面的信息来执行验证操作。而monkeyrunner的测试脚本中有明确 的条件判断等语句,可用来做功能测试。

总结:

  实际操作中,monkey由于缺少必要的条件判断等命令,难以在功能测试上有所作为,只能作为生成一些随机事件的工具,测试应用程序的健壮程度,待测应用崩溃后可以根据monkey打印的日志,再用monkey创建一个重现步骤,供开发调试。monkey服务器模式更适合用于黑盒测试,不建议用于自动化测试。

  而Monkeyrunner虽然有Python和Java类库的强大支持,但其自身提供的API有限,还得需要插件扩展其功能。

Monkey与MonkeyRunner之间的区别的更多相关文章

  1. Monkey、Monkeyrunner之间的区别

    Monkey.Monkeyrunner之间的区别 一.Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输 ...

  2. monkey和monkeyrunner的区别

    简单来说: 1.monkey是在设备或模拟器直接运行adb shell命令生成随机事件来进行测试 2.monkeyrunner是通过API发送特定的命令和事件来控制设备 为了支持黑盒自动化测试的场景, ...

  3. Robotium 系列(2) - 简单介绍Monkey和MonkeyRunner

    除了Robotium,Android还有其他的自动化测试方法,比如Monkey和MonkeyRunner. 这里就做一个简单的介绍和使用方法. 本文提纲: 1. Android SDK以及SDK中的工 ...

  4. Android初体验之Monkey和MonkeyRunner

    原文地址https://blog.csdn.net/mad1989/article/details/38087737 Monkey 什么是Monkey Monkey是Android中的一个命令行工具, ...

  5. monkey测试===monkeyrunner测试教程(1)

    1.安装测试环境 jdk 安装与配置 android sdk安装与配置 Python编辑器安装与配置 以上安装请自行百度教程 Monkeyrunner使用方法 http://www.android-d ...

  6. Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner

    4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...

  7. Android的Monkey和MonkeyRunner

    本文部分解释性语段摘自网络百科或其它BLOG,语句内容网络随处可见,也不知道谁是初始原创,便不再署名出处,如有雷同,还请见谅. Monkey 什么是Monkey Monkey是Android中的一个命 ...

  8. select、poll、epoll之间的区别总结

    select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...

  9. 你真的会玩SQL吗?EXISTS和IN之间的区别

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

随机推荐

  1. 一般处理程序aspx

    public bool IsReusable { get { return false; } }属性,将该属性的值改为true,为什么不起作用?按照MSDN的解释,该属性的意思是: “获取一个值,该值 ...

  2. VS2010/VS2013项目创建及通过ADO.NET连接mysql/sql server步骤(VS2013连接成功步骤见上一篇随笔)

    本随笔主要是对初学者通过ADO.NET连接数据库的步骤(刚开始我也诸多不顺,所以总结下,让初学者熟悉步骤) 1.打开VS新建一个项目(这里的VS版本不限,建项目都是一样的步骤) VS2010版本如图: ...

  3. EF5 通用数据层 增删改查操作,泛型类

    using System; using System.Collections.Generic; using System.Data.Entity.Infrastructure; using Syste ...

  4. fleet - 基于Machine Metadata的任务调度

    基于Machine Metadata的任务调度 复杂和特定的要求的应用程序可以针对一个子集的集群调度通过machine metadata.强大的部署拓扑结构,可以实现的基础上的机器的地区,机架位置,磁 ...

  5. 基于JAVA的设计模式之组合模式

    概念 将所有对象组合成一种树形结构,有分支节点.叶子节点,分支节点可以有自己的子节点,子节点可以是分支节点.叶子节点,可以进行增删的操作,而叶子节点不可以.比如文件夹就是一个分支节点,而文件就是一个叶 ...

  6. WebStorm快捷键(Mac版)

    编辑 Command+alt+T 用 (if..else, try..catch, for, etc.)包住 Command+/ 注释/取消注释的行注释 Command+alt+/ 注释/取消注释与块 ...

  7. css3响应式图片

    响应式图片指用户代理根据输出设备的分辨率不同加载不同类型的图片,不会造成带宽的浪费. 同时,在改变输出设备类型或分辨率时,能及时加载对应类型的图片.   常用的实现方式: 1.用srcset和size ...

  8. FAST FW150R软件版本升级解决一些网页无法加载问题

    家里用的移动宽带,通过无线路由器无线上网.上taobao.天猫都很快,但是一上京东.苏宁易购界面加载很慢,界面无法显示,怀疑是无线路由问题,然后直接通过网线相连接,发现问题消失,决定对无线路由软件版本 ...

  9. LibreOJ #107. 维护全序集

    内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: 匿名   splay模板题 屠龙宝刀点击就送 #include <cstdio&g ...

  10. ABAP system landscape和vue项目webpack构建的最佳实践

    基于Netweaver的ABAP transport route一般都有dev,test和prod三种类型的系统. 而Vue前端项目的webpack build设置也类似. 以SAP成都研究院数字创新 ...