Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),可以通过自动化高效地弥补app稳定性对测试人力和测试时间的要求
Monkey测试使用的是adb命令,因此只需要配置adb环境即可,也可用真机通过USB连接电脑,连网方式可通过在安卓机上安装wifi adb应用实现。连上设备后在cmd终端中输入adb devices 查看设备连接情况
Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar
Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在shell窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了
虚拟机或者真机连接好后,直接在cmd中输入相关命令就可以进行monkey测试了,下面简单介绍下基本的命令和参数:
adb shell monkey -p 包名 –-throttle 毫秒数 --ignore-crashes --ignore-timeouts -s 9 -v -v -v 点击数 >电脑某一位置
1.直接查看手机中存在的apk包,进入adb shell 命令后,手机的data/data文件夹ls查看所有包名,找到要测apk的包名,如果 是整机测试,就不需要包名
2.--throttle毫秒数:是指每两次执行之间的时间距离,可以防止由于实行过快软件还没来得及反应
3. --ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设置时,出现carash或者timeout时,Monkey测试会终止,这里是防止Monkey测试终止
类似的参数:
--pct-trackball <percent> 调整滚动球事件百分比,滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件,如不规则滑动解锁
--ignore-security-exceptions 忽略权限问题的
--kill-process-after-error 当错误发生时杀进程
--monitor-native-crashes 监视崩溃时的本地代码
4. -s <seed> 伪随机数生成器的 seed 值,这里的9就是Seed值(影响随机事件的发生顺序),如果用相同的seed 值再次运行Monkey ,它将生成相同的事件序列
5.点击数一般设置30000-100000次
我选择使用Monkey测试的原因是,我们小组属于编程技术比较稚嫩的,我们开发的软件涉及的事件较简单,且我们不能确保我们编写的软件能够在手机上完美融合并能够使用,所以在电脑的模拟机上进行测试再适合不过了,Monkey测试没有额外的系统界面,也无需下载安装软件,我们只需要打开cmd,然后使用简单的语句就可以直接测试,大大的减轻了进行测试的难度,Monkey可以测试我们软件中所使用的事件的压力测试,然后它可以从内存、CPU、GPU、流量、电量五个方面去分析软件的性能,据此,我认为我们小组使用Monkey测试就可以将我们小组开发的软件所出现的问题暴露出来