Monkey学习

Monkey介绍

Monkey 是 Android SDK提供的一个命令行工具,可运行在任何版本的Android模拟器和实体设备上。实际应用中,经常用来做APP的稳定性测试和压力测试,用随机重复的方法负荷测试开发的软件。

Monkey帮助文档

 

Monkey学习
>adb shell monkey -help
  bash arg: -help
args: [-help]
 arg: "-help"
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--match-description TEXT]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pct-permission PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              [--permission-target-system]
              COUNT
命令行中adb shell monkey -help结果

 

Moneky常用参数介绍

 

//基本参数
[-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]  //单包或多包,省略则所有包执行。(注,并不是手机里所有的包都可以测试)
[-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]  //不常用。指定系统启动的类别;不指定,则调用Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY两个类别的Activity
[-s SEED]   //指定伪随机说生成器的seed值。seed相同,则两次执行的monkey测试产生的事件序列相同
[-v [-v] ...] //指定反馈信息级别,即日志的详细程度,分3级,-v , -v -v, -v -v -v。级别依次增大。一般选择-v -v -v
//-v:缺省值,仅提供启动提示,测试完成和最终结果等少量信息。
//-v -v:提供较为详细的日志,包括每个发送到的Activity的事件信息
//-v -v -v:(最详细日志,包括测试中选中和未选中的Activity。)。 [--throttle MILLISEC] //事件时延,单位毫秒,一般设置为300毫秒,实际用户最快300毫秒左右一个动作事件。若不指定,monkey执行的会很快。特别注意,看一下文末的参考资料‘2’,中所说的问题。 COUNT //操作数//调试参数 [--ignore-crashes] //常用。app发生崩溃或异常时,monkey继续执行 [--ignore-timeouts] //常用。APP出现ANR(Application Not Responding)时,monkey命令继续 [--ignore-security-exceptions] //常用。发生许可错误时,monkey继续执行。 [--monitor-native-crashes] //监视并报告本地代码的崩溃。若设置--kill....,系统停运 [--ignore-native-crashes] //出现本地崩溃或异常时,monkey仍运行 [--kill-process-after-error] // 若APP发生错误,则通知系统停止出错的进程。若成功执行monkey,则不停止启动的进程。 //事件参数(部分) 注:PERCENT为1-100数字,所有参数总和不能大于100 [--pct-touch PERCENT] //触摸,一个down-up事件, [--pct-motion PERCENT] //动作,一个down,一系列伪随机移动,一个up事件组成 [--pct-trackball PERCENT] //滚动球,一个或多个随机的motion事件,有时会伴随点击事件。 [--pct-syskeys PERCENT] //系统事件,Home,Back,Start Call,End Call,音量调节。 [--pct-nav PERCENT] //基本导航,方向输入设备的上下左右键 [--pct-majornav PERCENT] //主要导航事件,通常会导致UI界面的动作事件,如5-way键盘的中间键,回车键,菜单键 [--pct-appswitch PERCENT] //Activity的启动 [--pct-anyevent PERCENT] //其他事件,如按键,其他在设备上不常用的按钮 [--pct-permission PERCENT]

 

Monkey其他参数列表

Monkey学习
//剩余参数
[--hprof]  //在事件序列前后,立即生成profilfing report
[--match-description TEXT]
[--pct-flip PERCENT]  
[--pct-pinchzoom PERCENT]  //缩放(捏)事件
[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
[--wait-dbg]   //暂停执行中的monkey,直到有调试器与它连接
[--dbg-no-events]  //监视应用程序所调用的包之间的转换
[--setup scriptfile] 
[-f scriptfile [-f scriptfile] ...]
[--port port]
[--randomize-throttle]
[--profile-wait MILLISEC]
[--device-sleep-time MILLISEC]
[--randomize-script]
[--script-log]
[--bugreport]
[--periodic-bugreport]
[--permission-target-system]
monkey剩余参数列表

备注:在执行向下滑动的命令时,打开了通知栏,然后又开始了瞎点的操作。这时可在执行monkey命令之前,先执行禁用通知栏的命令[2]

禁用通知栏命令: adb shell settings put global policy_control immersive.full=* 
解除禁用命令: adb shell settings put global policy_control null 

解释:禁用时,只是完全隐藏,当手机或鼠标在界面顶部向下滑时(界面底部向上滑时),通知栏和下方三键会显示出来。

 

参考资料:

1. 移动端自动化测试----Monkey . 简书 . 我为峰2014

 

2. adb shell monkey常用命令 . 简书 . 我是龙俊

3. 关于 monkey 的--throttle 参数 . TesterHome . 评论区17楼和21楼的解释

4. 官方Monkey Api文档

 

上一篇:Linux常用命令随笔


下一篇:arch笔记本有关睡眠,开合屏幕设置