MONKEY
Monkey
monkey是一个黑盒压力测试工具,采用随机算法,对被测应用随机发送伪随机的用户事件流,如点击,拖拽,滑动,输入等,来确定应用是否会发生异常,并且会产生日志来进行分析,但是测试数据测试事件都是随机的,有一定局限性。适合作为压力或者稳定性测试工具来测试应用的崩溃率,稳定性。但是可以通过二次开发来进行业务流程控制或一定程度上控制测试覆盖。
monkey 命令介绍
adb shell -help 查看monkey命令介绍
参数解析:
-p 指定要进行monkey测试的包,如果不使用参数,则会随机选择一个应用进行测试
-c 指定activity的category类别
-v 指定日志级别 -v level1 -v -v level2 -v -v -v level3
-----所打印的日志级别,级别越高日志超详细
-s 伪随机的事件seed值,可以通过-s参数复现问题,不指定就会随机生成
----- seed值个人理解是设定后若出现问题,要重现的话可以再按所设定的值再次执行,便于问题跟踪
--ignore-crashes 忽略异常崩溃
----- for example:adb shell monkey -s 600 --throttle 300 --ignore-crashes --ignore-timeouts -v -v 100
--ignore-timeouts 忽略ANR
--ignore-native-crashes 忽略native层代码的崩溃
--ignore-security-exceptions 忽略一些许可错误,比如证书许可,网络许可
--monitor-native-crashes 是否监视并报告native层发送的崩溃代码
--kill-procress-after-error 用于在发送错误后杀死进程
--hprof 设置后,在Monkey事件序列之前和之后立即生产分析报告,保存于data/mic目录,不过将会生成大量几兆文件,谨慎使用
-----用于内存泄漏测试提取的快照文件,adb shell monkey -p 包名 --hprof --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 >c:\monkey.txt
--throttle 设置每个事件结束后延迟多少时间再继续下一个事件,降低cpu压力;如果不设置,事件与事件之间将不会延迟,事件将会尽快生成;一般设置300ms,因为人最快300ms左右一个动作
--pct-touch 设置触摸事件的百分比,即手指对屏幕进行点击抬起(down-up)的动作
--pct-motion 设置移动事件百分比,这种事件类型是由屏幕上某处的一个down事件-一系列伪随机的移动事件-一个up事件,即点击屏幕,然后直线运动,最后抬起这种运动。
--pct-trackball 设置轨迹球事件百分比,这种事件类型是一个或者多个随机移动,包含点击事件,这里可以是曲线运动,不过现在手机很多不支持,这个参数不常用
--pct-syskeys 设置系统物理按键事件百分比,比如home键,音量键,返回键,拨打电话键,挂电话键等
--pct-nav 设置基本的导航按键事件百分比,比如输入设备上的上下左右四个方向键
--pct-appswitch 设置monkey使用startActivity进行activity跳转事件的百分比,保证界面的覆盖情况
--ptc-anyevent 设置其它事件百分比
--ptc-majornav 设置主导航事件的百分比
保存dos窗口打印的monkey信息,在monkey命令后面补上输出地址,如adb shell monkey -p xxx.xxxx.xxx -v -v 100 > D:\monkey.txt;这样monkey测试结束后,所有打印的信息都会输出到这个文件里
-----monkey输入日志可以进行正常流、异常流的区分,再输入,如adb shell monkey -s 600 -v -v 200 1>C:\monkey.txt 2>C:\monkey_errorlog.txt