Monkey
Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作来对设备上的程序进行压力测试,检测程序经历多久的时间会发生异常,属于APP的健壮性测试。
Monkey的程序介绍
1.Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径为:/system/framwork/monkey.jar
2.Monkey.jar是由一个名为"Monkey"的Shell脚本来启动执行的,Shell脚本在Android文件系统中的存放路径为:/system/bin/monkey
3.Monkey命令启动方式:
- 在PC上通过CMD窗口执行:adb shell monkey {命令参数} 来进行Monkey测试
- 在PC上使用adb shell命令进入Android系统,通过执行monkey {命令参数}来进行Monkey测试
- 在Android设备上安装Android终端模拟器直接执行monkey命令
Monkey压力测试参数
-
-v
用于指定反馈信息级别,即日志的详细程度,总共有3个级别,一般测试的时候选择最高级别获取最详细的日志
# -v表示最简单的日志信息, -v -v -v表示最详细的日志信息
adb shell monkey -v 100 # level 0(默认),仅提供启动提示、测试完成和最终结果等少量信息
adb shell monkey -v -v 100 # level 1,提供较为详细的日志,包括每个发送到Activity的事件信息
adb shell monkey -v -v -v 100 # level 2,最详细的日志,包括了测试中选中/未选中的Activity的信息
-
-p
用于指定的一个或多个应用包,当指定包后,monkey将只允许系统启动指定的app,如果没有指定,monkey将允许系统启动设备中的所有app
adb shell monkey -p <应用包名> 100
adb shell monkey -p <应用包名1> -p <应用包名2> 100
-
--throttle
用于指定用户操作事件的延迟时间,单位为毫秒,如果不指定该参数,monkey会以尽可能快地发送事件.一般设置throttle参数为300毫秒
adb shell monkey -throttle 1000 100 # 指定每一次monkey发送事件操作间隔为1000ms
-
-s
用于指定monkey生成器的seed值,一个seed值对应一个事件序列,当你使用进行monkey测试出现异常后,在日志中提取seed值并进行指定,可生成相同的事件序列,有利于bug的重现
adb shell monkey -s <seed值> 100
实战应用
对指定包名为com.mu77.aam.cgamex.speed的app进行发送200次延迟为300ms的伪随机事件,并输出最详细的日志保存到E盘下的monkey.log文件中
adb shell monkey -v -v -v -p com.mu77.aam.cgamex.speed --throttle 300 200 >E:\monkey.log
接下来打开monkey.log文件,查看日志内容