一、基本介绍
monkey是每个手机自带的工具,我们可以通过命令去唤醒它。它是一个伪随机事件(随机操作、乱点),可以测试APP的稳定性、抗压能力(压力测试)、app(客户端)的性能等,可以点击一些被人工忽略的区域,找到一些崩溃或异常的bug,发现一些内存溢出(OOM)的问题等。
二、一个问题记录
基本命令 [adb shell] monkey [options] < eventcount > , 例如:
>adb shell monkey 1000
如果monkey事件无法触发,或出现“ ** SYS_KEYS has no physical keys but with factor 2.0%. ” 这个提示,可以在命令中加入如下命令“ --pct-syskeys 0 ”,如图:
三、结束monkey进程
adb shell
#ps | grep monkey
#kill -9 PID号(第二个数字)
四、简单命令(常规选项、事件选项、约束选项、调试选项)
I.常规
1.-v ---常用参数
作用:命令行上的每一个 -v 都将增加反馈信息的详细级别
level0(默认),除了启动、测试完成和最终结果外,只提供较少的信息;
level1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息;
level2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。
II.事件
1.-s<seed> ---常用参数
作用:伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,将生成相同的事件序列。
2.--throttle <milliseconds> ---常用参数
作用:在事件之间插入固定的时间(毫秒)延迟,可以使用这个设置来减缓Monkey的运行速度,如果不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。
3.这里将事件分为了11种类型,分别为:
0:触摸事件百分比,即参数--pct-touch ---常用参数
1:滑动事件百分比,即参数--pct-motion ---常用参数
2:缩放事件百分比,即参数--pct-pinchzoom ---常用参数
3:轨迹球事件百分比,即参数--pct-trackball ---不常用参数
4:屏幕旋转事件百分比
5:基本导航事件百分比,即参数--pct-nav ---不常用参数
6:主要导航事件百分比,即参数--pct-majornav ---不常用参数
7:系统事件百分比,即参数--pct-syskeys ---不常用参数
8:Activity启动事件百分比,即参数--pct-appswitch ---不常用参数
9:键盘翻转事件百分比,即参数--pct-flip ---不常用参数
10:其他事件百分比,即参数--pct-anyevent ---不常用参数
III.约束
1.-p <allowed-package-name> ---常用参数
作用:如果你指定一个或多个包,Monkey将只允许访问这些包中的Activity。如果你的应用程序需要访问这些包(如选择联系人)以外的Activity,你需要指定这些包。如果你不指定任何包,Monkey将允许系统启动所有包的Activity。指定多个包,使用多个 -p,一个 -p 后面接一个包名。
例:adb shell monkey -p com.Android.browser -v 100
2.--ignore-crashes ---常用参数
作用:通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成
3.--ignore-timeouts ---常用参数
作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
4.--ignore-security-exception ---常用参数
作用:通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
5.--kill-process-after-error ---常用参数
作用:通常,当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。
例子:
adb shell monkey -v -v -p com.xxx --throttle 500 --ignore-crashes --ignore-timeouts --kill-process-after-error 1000
备注:参数没有先后顺序,一般在adb shell monkey 后就可以了
将日志导出到本地电脑:
adb shell monkey -v -v -p com.xxx --throttle 500 --ignore-crashes --ignore-timeouts --kill-process-after-error 1000 >D:\rizhi\1.txt