当前位置:   article > 正文

Monkey命令使用大全总结

monkey命令

目录

一、Monkey测试简介

二、Monkey程序介绍

三、Monkey命令的简单帮助

四、Monkey命令参数介绍

1) 参数:-p

2) 参数:  -v

日志级别 Level0 

日志级别 Level 1

日志级别 Level 2

3)参数:-s

4) 参数: --throttle <毫秒>

5) 参数:--ignore-crashes

6) 参数:--ignore-timeouts (无响应ANR)

7) 参数:--ignore-security-exceptions (许可证书崩溃)

8) 参数:--kill-process-after-error(发生错误停止运行并保持当前状态)

9)参数:--monitor-native-crashes(监视并报告Androids系统本地代码的崩溃事件) 

10) 参数:  --pct-{+事件类别}{+事件类别百分比}

参数: --pct-touch {+百分比}

参数:--pct-motion {+百分比}

参数: --pct-trackball {+百分比}

参数: --pct-nav {+百分比}

参数: --pct-majornav {+百分比}

参数: --pct-syskeys {+百分比}

参数: --pct-appswitch {+百分比}

参数: --pct-anyevent {+百分比}

五、Monkey命令使用常遇问题及处理


一、Monkey测试简介

Monkey测试是一种随机测试的技术,用于检测软件系统的稳定性和健壮性。在这种测试中,测试工具会随机地执行各种操作,如点击、滑动、输入等,以模拟用户的行为,从而揭示系统中的潜在缺陷或问题。Monkey测试通常用于测试Android应用程序,但也可以应用于其他类型的应用程序。它可以帮助开发人员发现和修复应用程序中的问题,同时提高应用程序的质量和可靠性。

二、Monkey程序介绍

1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;

2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;

这样就可以通过在CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。 

三、Monkey命令的简单帮助

要获取Monkey命令自带的简单帮助,在CMD中执行命令:

adb shell monkey –help
  1. ```
  2. usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
  3. [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
  4. [--ignore-crashes] [--ignore-timeouts]
  5. [--ignore-security-exceptions]
  6. [--monitor-native-crashes] [--ignore-native-crashes]
  7. [--kill-process-after-error] [--hprof]
  8. [--match-description TEXT | --pct-touch | --pct-motion |
  9. --pct-trackball | --pct-syskeys | --pct-nav |
  10. --pct-majornav | --pct-appswitch | --pct-flip |
  11. --pct-anyevent | --pct-pinchzoom | --pct-permission]
  12. [--pct-screenshot] [--pct-syskeys] [--randomize-throttle]
  13. [--wait-dbg] [--dbg-no-events] [--setup] [-s SEED]
  14. [--throttle MILLISEC] [--randomize-script] [--script-log]
  15. [--bugreport] [--periodic-bugreport] [--permission-target-system]
  16. [--permission-target-all] [-v [-v] ...]
  17. [--output-format {simple,compact,full}]
  18. [--agent-agent]
  19. COUNT
  20. -p ALLOWED_PACKAGE: 规定被允许测试的包名
  21. -c MAIN_CATEGORY: 规定测试时默认启动的 Activity 的 category
  22. --ignore-crashes: 忽略崩溃
  23. --ignore-timeouts: 忽略超时
  24. --ignore-security-exceptions: 忽略安全性异常
  25. --monitor-native-crashes: 监控并报告本地崩溃事件
  26. --ignore-native-crashes: 忽略本地崩溃事件
  27. --kill-process-after-error: 在发生错误后杀死进程
  28. --hprof: 在发生错误时生成内存转储文件
  29. --match-description TEXT: 匹配包含指定文本的事件
  30. --pct-touch: 规定“触摸”事件的百分比
  31. --pct-motion: 规定“移动”事件的百分比
  32. --pct-trackball: 规定“轨迹球”事件的百分比
  33. --pct-syskeys: 规定“系统”事件的百分比
  34. --pct-nav: 规定“导航”事件的百分比
  35. --pct-majornav: 规定“重要导航”事件的百分比
  36. --pct-appswitch: 规定“应用切换”事件的百分比
  37. --pct-flip: 规定“翻转”事件的百分比
  38. --pct-anyevent: 规定任何事件的百分比
  39. --pct-pinchzoom: 规定“双指缩放”事件的百分比
  40. --pct-permission: 规定“权限请求”事件的百分比
  41. --pct-screenshot: 规定“屏幕截图”事件的百分比
  42. --randomize-throttle: 随机化输入间隔时间
  43. --wait-dbg: 等待调试器连接后,再开始运行
  44. --dbg-no-events: 不向设备发送任何事件,只打印调试信息
  45. --setup: 只需启动设备,并不执行任何测试 (用于检查设备是否连接成功)
  46. -s SEED: 设置随机数种子
  47. --throttle MILLISEC: 规定事件输入之间的间隔时间,单位为毫秒
  48. --randomize-script: 随机播放事件脚本
  49. --script-log: 以脚本形式记录事件
  50. --bugreport: 在脚本执行结束后,收集设备信息并生成 Bug 报告
  51. --periodic-bugreport: 在脚本执行期间定期生成 Bug 报告
  52. --permission-target-system: 只测试系统权限
  53. --permission-target-all: 测试所有权限
  54. -v: 打印更详细的调试信息 (-v: verbose, -vv: extra verbose)
  55. --output-format {simple,compact,full}: 规定日志输出格式,分别为简单、紧凑、完整
  56. --agent-agent: 以 Agent 方式运行
  57. COUNT: 指定要执行的事件数量
  58. ```

四、Monkey命令参数介绍

1) 参数:-p

参数-p用于约束限制,用此参数指定一个或多个包(Package,即App)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。

* 指定一个包:

 adb shell monkey -p com.htc.Weather 100

说明:com.htc.Weather为包名,100是事件计数(即让Monkey程序模拟100次随机用户事件)。

* 指定多个包:

adb shell monkey -p com.htc.Weatherp com.htc.pdfreader  -p com.htc.photo.widgets 100

* 不指定包:

adb shell monkey 100

说明:Monkey随机启动APP并发送100个随机事件。

* 要查看设备中所有的包,在CMD窗口中执行以下命令: 

  1. >adb shell
  2.   #cddata/data
  3.   #ls

  

2) 参数:  -v

用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

日志级别 Level0 

示例

 adb shellmonkey -p com.htc.Weather –v 100

说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

示例

adb shellmonkey -p com.htc.Weather –v -v 100

说明  提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

示例

adb shellmonkey -p com.htc.Weather –v -v –v 100

说明  最详细的日志,包括了测试中选中/未选中的Activity信息

3)参数:-s

用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。

* 示例:

 Monkey测试1:

adb shell monkey -p com.htc.Weather –s 10 100

  Monkey 测试2:

adb shell monkey -p com.htc.Weather–s 10 100

   两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽   然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

4) 参数: --throttle <毫秒>

用于指定用户操作(即事件)间的时延,单位是毫秒;

* 示例:

adb shell monkey -p com.htc.Weather –throttle 3000 100

  

5) 参数:--ignore-crashes

用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成。

* 示例1:

adb shellmonkey -p com.htc.Weather --ignore-crashes 1000

  测试过程中即使Weather程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;

* 示例2:

adb shellmonkey -p com.htc.Weather 1000

  测试过程中,如果Weather程序崩溃,Monkey将会停止运行。

6) 参数:--ignore-timeouts (无响应ANR)

"--ignore-timeouts"是一个adb命令的选项。当使用"adb shell am start"命令启动应用程序时,如果应用程序在启动过程中出现长时间等待或ANR(无响应)错误,则该命令可以忽略该错误,继续运行应用程序。

这个选项对于测试人员特别有用,因为它允许他们测试应用程序的性能和响应时间,而不必担心应用程序在启动过程中出现ANR错误而停止运行。但是,使用此选项时,请务必注意应用程序的行为,并确保其在真实设备上的性能与在模拟器上的性能相同。

7) 参数:--ignore-security-exceptions (许可证书崩溃)

"--ignore-security-exceptions" 是 Android 平台上的一个选项,用于忽略应用程序中的许可证书错误或异常,允许应用程序继续执行。通常情况下,Android 应用程序需要在运行时验证其许可证书是否有效,以确保应用程序只能在有效许可证下运行。但有时许可证书出现异常或错误,导致应用程序无法验证其许可证书,从而阻止应用程序继续执行。在这种情况下,使用该选项可以忽略许可证书错误或异常,使应用程序继续执行。但同时也可能会导致安全问题,因此需要谨慎使用。

8) 参数:--kill-process-after-error(发生错误停止运行并保持当前状态)

--kill-process-after-error是一个命令行参数,当设置为true时,表示在程序发生错误时,立即停止运行并保持当前状态。这个参数通常用在自动化测试中,可以确保测试用例在失败时不会继续运行导致更多的错误。

例如,在运行自动化测试时,如果一个用例失败了,一般会停止执行所有用例,此时--kill-process-after-error参数就派上用场了。当设置该参数为true时,程序在遇到失败的用例时就会立即停止,并保持当前状态,以便调试和分析错误。

9)参数:--monitor-native-crashes(监视并报告Androids系统本地代码的崩溃事件) 

--monitor-native-crashes 是 Android Debug Bridge(ADB)命令的一个选项,用于在应用程序崩溃时监视并报告 Android 系统本地代码的崩溃事件。当应用程序崩溃时,该选项启用 ADB 以便它可以监视崩溃堆栈跟踪中的本地库函数,并将这些信息报告回开发人员以便进行后续调试。

该选项的语法为:

adb shell am start -n com.example.app/.MainActivity --monitor-native-crashes

使用该选项可以更方便地调试应用程序崩溃问题,并快速找出根本原因。

10) 参数:  --pct-{+事件类别}{+事件类别百分比}

用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)

参数: --pct-touch {+百分比}

使用说明:

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

示例:

adb shell monkey -p com.htc.Weather--pct-touch 10 1000

参数:--pct-motion {+百分比}

使用说明:

调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)

示例:

adb shell monkey -p com.htc.Weather --pct-motion 20 1000

参数: --pct-trackball {+百分比}

使用说明:

调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

示例:

adb shell monkey -p com.htc.Weather--pct-trackball 30 1000

参数: --pct-nav {+百分比}

使用说明:

调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

示例:

adb shell monkey -p com.htc.Weather--pct-nav 40 1000

参数: --pct-majornav {+百分比}

使用说明:

调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

示例:

adb shell monkey -p com.htc.Weather--pct-majornav 50 1000

参数: --pct-syskeys {+百分比}

使用说明:

调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

示例:

adb shell monkey -p com.htc.Weather--pct-syskeys 60 1000

参数: --pct-appswitch {+百分比}

使用说明:

调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

示例:

adb shell monkey -p com.htc.Weather--pct-appswitch 70 1000

参数: --pct-anyevent {+百分比}

使用说明:

调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

示例:

adb shell monkey -p com.htc.Weather --pct -anyevent 100 1000

* 指定多个类型事件的百分比:

示例:

adb shell monkey -p com.htc.Weather--pct-anyevent 50 --pct-appswitch 50 1000

注意:各事件类型的百分比总数不能超过100%;

五、Monkey命令使用常遇问题及处理

  1. 无法连接到 SSH:这通常是由于网络连接问题引起的。请确保您的网络连接正常,并检查您的 SSH 配置是否正确。可以尝试使用 "ping" 命令来测试网络连接。

  2. 密码认证失败:如果您使用密码进行身份验证,并且认证失败,请确保您输入的密码是正确的,并且没有使用错误的大小写。如果您仍然无法登录,请尝试重新设置密码。

  3. 文件上传失败:如果您使用 "put" 命令上传文件并且失败,请确保您已经有权限将文件上传到目标文件夹,并且文件名是正确的。您还可以尝试将文件复制到您的主机上,并重新上传。

  4. 无法运行脚本:如果您尝试运行脚本,但出现错误,请确保您已经正确安装脚本需要的依赖项和版本。此外,您可以检查脚本文件是否具有可执行权限。

  5. 处理进程失败:如果您的进程在 Monkey 中运行失败,请确保您的代码没有出现任何错误或死锁。您可以尝试使用调试工具来查找问题。

  6. 无法正常关闭 Monkey:如果您无法正常关闭 Monkey,请尝试使用 "kill" 命令手动终止进程,或者重新启动您的主机。也可以检查您的日志文件以查找任何异常行为。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号