最近 boss让作关于apk测试工具的调查,最后整理出以下,如今网络上的资料并非不少,本身一步步通过查找测试到完成领导的预约任务到提交报告。 html
由于是份报告因此有些地方并非很具体,能够参考给出网址。 python
若是有什么不足还请告知及时补充。 android
apk测试工具调查 shell
简介 浏览器
android SDK里自带的测试工具monkey 和 monkeyrunner。 网络
1. mokey session
Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流,主要应用在压力和可靠性测试上,运行该命令能够随机地向目标程序发送各类模拟键盘事件流,而且能够本身定义发送的次数,以此观察被测应用程序的稳定性和可靠性。 app
2. monkeyrunner electron
monkeyrunner工具则是在工做站上经过API定义的特定命令和事件控制设备或模拟器,主要可应用于功能测试,回归测试,而且能够自定义测试扩展,灵活性较强,而且测试人员能够彻底控制。 ide
目前的缺陷:
•不支持中文字符的输入(只能输入ASC码中存在的字符)
•基于UI操做,一旦遇到复杂的应用,测试代码的复杂度指数增加;测试设备性能不一样,须要根据设备的快慢对操做加时延;脚本的运行速度慢
•没法将测试结果抓取出来,只能采用截图比较。没法准确统计测试数据。
•drag方法只能实现简单的滑动屏幕的操做,不能进行复杂的拖拽。微博客户端的下拉刷新操做没法模拟出来。
下面主要说明monkeyrunner的使用。
monkeyrunner的使用 参考网站 http://www.51testing.com/html/59/n-242759.html http://blog.csdn.net/zm2714/article/details/7980634 http://www.cnblogs.com/youxilua/archive/2011/11/12/2246576.html
运行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云测试
优势:测试点更精细跟准确。
http://www.testin.cn/portal.action;jsessionid=FCC8344620201F91DF42D092AD7142F2?op=Portal.index
测试分为 兼容测试、性能测试、功能测试三大部分。
![]() |
这是以 点菜宝为例上传测试后的结果概要截图 |
百度云众测
优势:提供APP评测、用户体验反馈、问卷调查等。
http://developer.baidu.com/yunzhongce
![]()
|
就云测试来讲,两款云端测试工具 我更倾向于前者,也就是Testin云测试,测试更具象化。
然后者 更亲向于 用户体验与反馈。
---刘利涛
2013-4-26日