一、简介
Monkey 是SDK中附带的一个工具。Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
该工具用于进行压力测试。然后开发人员结合monkey 打印的日志和系统打印的日志,分析测试中的问题
特点:
Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。
1、测试的对象仅为应用程序包,有一定的局限性。
2、Monky测试使用的事件数据流是随机的,不能进行自定义。
3、可对MonkeyTest的对象,事件数量,类型,频率等进行设置
二、Monkey的基本命令
1.查看连接设备:adb decives
2.连接模拟器:adb connect 217.0.0.1:62001
3.打开被测软件,查看当前包名:adb dumpsys window windows | findstr “Current”
4.对指定包名模拟100次随机操作:adb shell monkey -p packgename 100
5.事件之间的间隔时间:adb shell monkey -p packgename --throttle 3000 100
6.产生随机事件的seed值:adb shell monkey -p packgename -s100 100
设定相同的seed,保证两次测试产生的随机操作序列是完全相同的
7.设置触摸事件的百分比:adb shell monkey -p packgename --pct-touch 30% 100
7.模拟100次随机操作产生的日志:adb shell monkey -p packgename -v 100 -v表示日志级别,共3个级别
8.将日志保存C盘:adb shell monkey -p packgename -v -v -v100>C:\Workspace\monkeylog.txt
调试选项:
–ignore-crashes:忽略崩溃
–ignore-timeouts:忽略超时
–ignore-security-exceptions:忽略安全异常
–kill-process-after-error:发生错误后直接杀掉进程
–monitor-native-crashes:跟踪本地方法的崩溃问题
–wait-dbg:知道连接了调试器才执行monkey测试
三、结果分析
打开日志,在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名
在日志中查找crash和ANR,分别是崩溃日志和无响应问题
如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:
Events injected: 6000
:Dropped: keys=0 pointers=9 trackballs=0 flips=0
Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)
// Monkey finished