一、Monkey测试简介
是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackball、按键等操作,来对设备上的程序进行压力测试,检测程序多久时间会发生异常。
二、Monkey程序介绍
1.由Android系统自带,使用Java语言写成,在安卓文件系统中的存放路径/system/framework/monkey.jar;
2.Monkey.jar程序是由一个名为“monkey”的shell脚本来启动执行,shell脚本在Android文件系统中的存放路径:/system/bin/monkey;
然后在cmd窗口中执行:adb shell monkey+{命令参数}来进行Monkey测试了!
三、Monkey命令的简单帮助命令
adb shell monkey -help
四、常用命令
1.参数:-p,用于约束限制,指定一个或多个包。指定包后,Monkey只可启动指定的App;若不指定,讲启动设备中所有的App;
指定一个包:
adb shell monkey -p 包名 1000
其中1000为压力执行的频率次数
指定多个包:
adb shell monkey -p 包名 -p 包名 -p 包名1000
不指定:
adb shell monkey 1000
2.参数:-v用于指定反馈信息级别(日志的详细程度)
adb shell monkey -p 包名 -v -v 1000
-v显示基础信息(level0)
-v两个较为详细(level1)
-v三个最详细(level2)
3.参数:-s
用户指定随机数生成的seed值,如果seed值相同,则两次Monkey测试产生的事件序列也相同
Monkey测试1:adb shell monkey -p 包名 -s 10 1000
Monkey测试2:adb shell monkey -p 包名 -s 10 1000
4.参数:--throttle(毫秒)
用于指定用户操作(事件)时间的时延,单位是毫秒:
adb shell monkey -p 包名 --throttle 3000 1000
延迟3000毫秒,事件数1000
5.参数:--ignore-crashes
用于指定当程序崩溃时(Force & Close错误),Monkey是否停止运行。
如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成
adb shell monkey -p 包名 --ignore-crashes 1000
6.参数:--ignore-timeouts
用于指定当应用发生ANR(Application No Responding)错误时,Monkey是否停止运行。
如果使用此参数,即使程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。
adb shell monkey -p 包名 --ignore-timeouts 1000
7.参数:-ignore-security-exceptions
用于指定当程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。
如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到完成。
adb shell monkey -p 包名 --ignore-security-exceptions 1000
8.参数:--kill-process-after-error
用户指定当应用程序发生错误时,是否停止其运行。
如果使用此参数,当应用程序发生错误时,应用程序停止运行并保持当前状态。
注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程
adb shell monkey -p 包名 --kill-process-after-error 1000
9.参数:--monitor-native-crashes
用于指定是否监视并报告应用程序发生崩溃的本地代码
adb shell monkey -p 包名 --monitor-native-crashes 1000
10.参数:--pct-{+事件类别} {+事件类别百分比}