Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。
完成ADB连接Android测试设备
1.找到Android sdk目录
2.进入sdk/platform-tools目录
3.从命令行进入platform-tools目录
废话不多说,直接先跑一个看成果。
Monkey常用命令:
-p
用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许启动指定app,如果不指定包,monkey将随机启动系统中的app 。
指定一个应用程序的包,启动该app ,例如
adb shell monkey -p com.example.monkeytest -v 1000
-v
用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。
-s
指定伪随机数生成器的seed值,如果seed相同,则两次monkey 测试产生的事件序列也相同。例如:
adb shell monkey -p com.example.monkeytest -s 35 -v 1000
--throttle(毫秒)
制定每个事件结束后的间隔时间,降低系统压力。(如果不指定系统会尽快的发送事件序列),例如:
adb shell monkey --throttle 300
定制事件
--pct-touch:指定触摸事件的百分比,例:--pct-touch 5% , 其他相关的:
--pct-motion <percent> (滑动事件)
--pct-trackball <percent> (轨迹球事件)
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key)
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之间的切换)
--pct-anyevent <percent>(任意事件)
Monkey 命令小结
monkey 查看所有 monkey 命令
monkey 1000 直接发1000个随机事件
monkey -v 1000 增加Terminal对操作轨迹的显示
monkey --throttle 1000 指定事件之间间隔,当前设置为1000ms
monkey -p com.example.monkeytest 指定要运行的包名
monkey -s 10 指定一个随机事件序列的id,下次再用同样的id去执行,可以复现问题
monkey --pct-touch 100 设置100%执行点击事件,不执行上下滑,旋转等其他操作
monkey --ignore-crashes 忽略异常,继续跑
monkey --ignore-timeouts 忽略超时,继续跑