本篇介绍两个Android自带的测试框架:Monkey和MonkeyRunner

1.Monkey

Monkey是android自带的测试框架,通过向手机发送随机事件(手势,点击,输入)进行应用程序压力测试(可指定应用程序包名,也可以说是稳定性测试),测试应用程序的稳定性和健壮性;
使用步骤:
(1)进入adb shell
(2)cd /system/bin
然后执行monkey命令即可;
常用的monkey命令(网上借的图):

分析:
Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
(1)测试的对象仅为应用程序包,有一定的局限性。
(2)Monkey测试使用的事件流数据流是随机的,不能进行自定义。
(3)Monkey测试主要是根据像素点随机进行事件的触发,无法进行录制回放
(4)仅能作为辅助测试,还需其它框架进行应用程序的整体系统性测试

2.MonkeyRunner

脚本语言:Python
为什么使用Python语言编写脚本,参考
http://blog.csdn.net/robinzhou/article/details/6790098

在测试脚本中,要先取到device实例:device = MonkeyRunner.waitForConnection()

事件类型API:拖拽,输入和点击

(1)拖拽:device.drag(tuple start,tuple end,float duration,integer steps)

start:起始位置,为tuple类型的(x,y)坐标点
end:终点位置,为tuple类型的(x,y)坐标点
duration:拖拽手势持续时间,默认1.0s
steps:步数,默认为10

(2)输入:device.touch(x,y,DOWN_AND_UP)
device.type(“xxxx”)
device.press(“KEYCODE_ENTER”,”DOWN_AND_UP”)

(3)点击:device.touch(x,y,DOWN_AND_UP)

必备API:等待设备,启动应用,设置等待,安装、卸载应用

(1)等待设备: device = MonkeyRunner.waitForConnection(),设备连接是一切操作的前提,连接失败将不会继续后续操作

(2)安装、卸载应用:
安装:device.installPackage(String path)
卸载:device.removePackage(String package)

(3)启动应用:device.startActivity(package+”/”+activity)

(4)设置等待:MonkeyRunner.sleep(float seconds)

系统按键API:发送键值事件

device.press(String name,dictionary type)
String name:keycode名
dictionary type:key event类型(如DOWM,UP..)
例:device.press(“KEYCODE_MENU”,”DOWN_AND_UP”),弹出menu菜单

如何实现长按操作:device.drag((300,500),(300,500),3,10), 长按(300,500)三秒钟

图像处理API:截屏,图像保存,图像截取,对比

截屏:picture = device.takeSnapshot();

保存:device.writeToFile(String path,String format)

图像截取:
picture = device.takeSnapshot();
subpic = picture.getSubImage((x,y,w,h))

图像对比:
picture1 = device.takeSnapshot();
picture2 = device.takeSnapshot();
compare = picture1.sameAs(picture2,0.9)

0.9为匹配百分比,范围为0.0~1.0,默认为1.0,即必须全部匹配
compare返回ture/false,true则两张图片一致,false,不一致

分析:
MonkeyRunner相对于Monkey有了很大的进步:
(1)API调用更加明了,支持设备的唤醒,重启,支持应用程序的安装,卸载,启动;
(2)对三种基本事件类型处理API更简单
(3)特色是可以进行截屏,对进行图像对比,判断程序是否异常
(4)支持录制回放
(5)缺点是,一切事件类型都是基于像素点,稳定性太低,脚本维护性太低,与Monkey类似,只能作为辅助测试框架使用

本篇文章对Monkey和MonkeyRunner进行了使用说明和优缺点分析,下篇文章将重点介绍Instrumentation测试框架。

更多相关文章

  1. quick-cocos2d-x android返回键监听并实现原生退出对话框
  2. Android(安卓)开发中Parcel存储类型和数据容器
  3. Android单元测试 - 验证函数参数、返回值的正确姿势
  4. Android使用AccessibilityService实现USB扫码枪数据抓取
  5. Android(安卓)之 下拉框(Spinner)的使用
  6. 1.5 Button
  7. android 联系人详解
  8. Android(安卓)渗透测试学习手册 第六章 玩转 SQLite
  9. Android(安卓)自定义RecyclerView.OnScrollListener,实现上拉分页

随机推荐

  1. React Native运行问题:Warning: License f
  2. Android(安卓)Framework中的Application
  3. Android之AIDL(进程间通信)
  4. Android应用程序开发以及背后的设计思想
  5. 一步步实现 仿制Android(安卓)LOL多玩盒
  6. 一种基于Android智能手机的远程视频监控
  7. Android的API Demos
  8. android自定义ListView背景
  9. Android图形图像使用总结
  10. 【笔记】VisionMobile:扁平、扩展、挖掘,Go