1
背景&简介
1
1.1 什么是Monkey?
Monkey是Android中的一个命令行工具,可以运行在模拟器或实际设备中,它向系统发送随机的用户事件流(按键输入,触摸屏输入,手势输入等),实现对应用程序随机,快速疯狂操作的效果。Monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。
1.2 Monkey测试的目的是什么?
- Android应用的Crash- Android应用的ANR
在保证基本功能正确性的基础上,App的稳定性就显得非常重要,使用户体验感得到提升,提起App的稳定性测试,很容易联想到MonkeyTest,这个方法使用门槛和成本非常低,但是通常收获也是较为有限,对于初次接触做一个初步了解参考。
Monkey命令随机地向目标程序发送各种模拟键盘事件流,并且可以自定义发送次数,来观察被测试应用程序的稳定性和可靠性。
2
常用执行参数
2
Monkey的Options操作分为四类:常规类,事件类,约束类和调试类。
$ adb shell monkey [options]
常用的几个参数:
- -p指被测的App包名- -v显示执行时的信息- Count发送的事件数据
下面是一个Monkey常见用法启动指定APP,向其发送100个伪随机事件:
$ adb shell monkey –p 指定APP –v 100
可以发现monkey模拟的事件非常广泛,除了对于被测App的点击,滑动,键盘输入等常见操作外,它还大量模拟了各种手机操作系统,如音量、打开通知栏、改变网络状态,锁屏等操作。
Monkey测试停止条件主要以下几种:
- 执行次数到了- 限定了Monkey运行在一个或者几个特定的包上,检测到试图转到其它包操作,会对其进行阻止- 遇到程序崩溃或者任何失控异常,Monkey将停止报错- 程序产生了ANR(应用程序不响应)的错误,Mnonkey将会停止并报错
3
结果检查与分析
3
测试结束后,需要将手机连接PC,拷贝以下文件:
- info.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时发送的各种事件,如触摸事件的位置等等。- error.txt:此文件在手机上的SDCARD中,主要记录了MONKEY测试时产生的一些ANR、强制关闭等异常。- LOG文件:此文件在手机上的LOG文件夹中中,主要主要记录程序对MONKEY测试时的响应情况。-
通过以上我们可以初步进行一些基本的稳定性测试,但是如果我们希望稳定性测试中的操作更加贴近用户的行为和日常操作就需要自己手动来做一些控制,用解决功能自动化的方法。
4
Monkey总结
4
优点:功能强大, 主要用于压力和稳定性测试
缺点:本身不提供截屏功能,无法完成录制、回放的功能(不过都可以借用其他的开源工具来实现Monkey的截屏和录制等功能);不支持条件判断,不支持读取待测界面的信息来执行验证操作;
【参考资料】:移动App测试实战 邱鹏、陈吉、潘晓明著
**
转载自 360质量效能