最近 boss让做关于apk测试工具的调查,最后整理出如下,现在网络上的资料并不是很多,自己一步步经过查找测试到完成领导的预定任务到提交报告。
因为是份报告所以有些地方并不是很具体,可以参考给出网址。
如果有什么不足还请告知及时补充。
apk测试工具调查
简介
android SDK里自带的测试工具monkey 和 monkeyrunner。
1. mokey
Monkey工具直接运行在设备或模拟器的 shell中,生成用户或系统的伪随机事件流,主要应用在压力和可靠性测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自己定义发送的次数,以此观察被测应用程序的稳定性和可靠性。
2. monkeyrunner
monkeyrunner工具则是在工作站上通过API定义的特定命令和事件控制设备或模拟器,主要可应用于功能测试,回归测试,并且可以自定义测试扩展,灵活性较强,并且测试人员可以完全控制。
目前的缺陷:
•不支持中文字符的输入(只能输入ASC码中存在的字符)
•基于UI操作,一旦遇到复杂的应用,测试代码的复杂度指数增长;测试设备性能不同,需要根据设备的快慢对操作加时延;脚本的运行速度慢
•无法将测试结果抓取出来,只能采用截图比较。无法准确统计测试数据。
•drag方法只能实现简单的滑动屏幕的操作,不能进行复杂的拖拽。微博客户端的下拉刷新操作无法模拟出来。
下面主要说明monkeyrunner的使用。
monkeyrunner的使用 参考网站 http://www.51testing.com/html/59/n-242759.html http://blog.csdn.net/zm2714/article/details/7980634
运行monkeyrunner之前必须先运行相应的模拟器,不然monkeyrunner无法连接设备。
shell操作的截图如下:
Hierarchy Viewer 工具使用简介 此device.touch(x,y,TouchPressType-触摸事件类型)的触摸事件的坐标获取工具 此方法使用时要开启hierarchyviewer工具获取对应的坐标,开启方法 另起cmd 定义到sdk的tools目录 执行shell命令hierarchyviewer.bat。 详情请参照:http://tech.it168.com/a2011/0802/1226/000001226690.shtml
使用截图
整体效果图如下:
|
总结:
1.monkeyrunner提供的操作有限,适合处理反复点击等小范围的操作,用来测试一个点是比较好的。可以做软件跑分、浏览器跑分等 稳定性测试,或是用来安装JUnit写好的测试app。
2.monkeyrunner不适合处理连续的操作。一旦进入到应用层,因为drag方法的不稳定,跳转就需要用点击按钮来代替,这样无法模拟用户真实的操作。 用工具来定位坐标、查找各个按钮的id,消耗时间。一旦UI改变,脚本可能就无法使用。
3.monkeyrunner或者其他基于UI的脚本测试,对所测试系统的稳定性要求比较高。如果系统或者软件非常容易奔溃,就会终端测试脚本,无法自动化。
4.基于UI的自动化测试,测试结果通过截图判断,无法脱离人工干预。
5.综上,基于UI的自动化测试事倍功半,是一条不归路。建议根据Android本身的特点,合理划分软件层次。测试部门用JUnit来测试API,完成逻辑测试;用人工来完成场景测试。
个人意见:
综合上述观点,monkeyrunner 符合这次调研的要求,但就目前的版本来说并不适用于平时的测试工作。
附:两款云端测试工具
Testin云测试
优点:测试点更精细跟准确。
测试分为 兼容测试、性能测试、功能测试三大部分。
|
这是以 点菜宝为例上传测试后的结果概要截图
|
百度云众测
优点:提供APP评测、用户体验反馈、问卷调查等。
|
就云测试来说,两款云端测试工具 我更倾向于前者,也就是Testin云测试,测试更具象化。
而后者 更亲向于 用户体验与反馈。
---刘利涛
2013-4-26日