为了支持黑盒自动化测试的场景,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有限,还得需要插件扩展其功能。

最新文章

  1. 强大的observejs
  2. const int * p 和 int const * p 和 int * const p 的区别
  3. [CareerCup] 12.6 Test an ATM 测试一个自动取款机
  4. 一个spring jdbc实例
  5. Delphi richedit获取选中文字
  6. ACM1998
  7. html5.边框属性相关知识点
  8. Linux下gcc编译生成动态链接库*.so文件并调用它【转载】
  9. Entity Framework技巧系列之九 - Tip 35 - 36
  10. java断点
  11. 构建自己的Tomcat镜像
  12. ##2.基础服务(SQl,RabbitMQ)-- openstack pike
  13. 让js调试更简单—console
  14. vue中实现全选功能
  15. 洛谷P3957 跳房子(Noip2017普及组 T4)
  16. Kaldi nnet3的前向计算
  17. JQuery1.72中二个Bug,formhtml()方法与clone()方法的二个Bug进行重写
  18. en_o out1
  19. 2018.09.26洛谷P3957 跳房子(二分+单调队列优化dp)
  20. HDU 3802 矩阵快速幂 化简递推式子 加一点点二次剩余知识

热门文章

  1. java核心技术 - 17个重要的知识点
  2. 链接服务器"(null)"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "Cannot start more transactions on this session."
  3. Mysql安装报错解决办法
  4. 使用jmeter测试数据库性能
  5. 参考消息 Android 读报
  6. JSON 序列化格式
  7. 洛谷 U3348 A2-回文数
  8. LibreOJ #515. 「LibreOJ β Round #2」贪心只能过样例
  9. python基础教程总结12——数据库
  10. cityspace