mokey的介绍和使用

mokey的介绍和使用一 monkey 介绍 monkey 是 AndroidSDK 提供的一个命令行工具 可以简单方便的发送伪随机的用户时间流 对 AndroidAPP 做压力 稳定性 健壮性 测试 主要是为了测试 APP 是否存在无响应和崩溃的情况 二 monkey 的使用 1 前提条件 配置 JDK 和 java 环境 配置 sdk 和测试环境 2 测试 adb 是否安装成功 在 dos 窗口的命令行工具输入 adb 会出来

一、monkey介绍

       monkey是Android  SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户时间流,对Android APP做压力(稳定性、健壮性)测试。主要是为了测试APP是否存在无响应和崩溃的情况。

二、monkey的使用

1、前提条件:配置JDK和java环境;配置sdk和测试环境

2、测试adb是否安装成功:在dos窗口的命令行工具输入adb会出来adb的一些命令就说明成功了。如下图

mokey的介绍和使用

3、连接手机: adb devices   了解成功的话会显示连接成功。如下图

mokey的介绍和使用

4、查看手机安装的第三方apk包:adb shell pm list packages -3 。如下图

mokey的介绍和使用

5、此时已经知道你要操作的包名了。然后就是从以下命令选择你要对APP进行哪些操作,一般是根据APP的特点来选取。

常用选项

      -v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0

            Level 0  :  adb shell monkey  -p com.tencent.music  -v 100  

                            最简单(默认),除了启动、测试完成和最终结果外只提供较少的信息。

            Level 1  :  adb shell monkey  -p com.tencent.music  -v  -v 100 

                            提供了较为详细的测试信息,如逐个发送到Activity的事件信息

            Level 2  :  adb shell monkey  -p com.tencent.music  -v  -v  -v 100

                            提供了更多的设置信息,如测试中选中或未选中的Activity信息

      -help:打印帮助信息

事件选项

      -s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200

      –throttle:每个事件结束后的间隔时间——降低系统的压力(如不指定,系统会尽快的发送事件序列)

                        如:–throttle 100(毫秒)

      –pct-touch:指定触摸事件的百分比

                        如:–pct-touch 5% ,

                        相关的还有以下option:

                               –pct-motion (滑动事件)

                               –pct-pinchzoom (缩放事件)

                               –pct-trackball (轨迹球事件)

                               –pct-nav (导航事件 up/down/left/right)

                               –pct-majornav (主要导航事件 back key 、 menu key)

                               –pct-syskeys (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、

                               –pct-appswitch (activity之间的切换)

                               –pct-flip (键盘翻转事件)

                               –pct-anyevent (任意事件)

约束选项

      -p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package

      -c:activity必须至少包含一个指定的category,才能被启动,否则启动不了

调试选项

      –dbg-no-events:初始化启动的activity,但是不产生任何事件

      –hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。

      –ignore-crashes:忽略崩溃

      –ignore-timeouts:忽略超时

      –ignore-security-exceptions:忽略安全异常

      –kill-process-after-error:发生错误后直接杀掉进程

      –monitor-native-crashes:跟踪本地方法的崩溃问题

      –wait-dbg:知道连接了调试器才执行monkey测试

比如我的命令是:adb shell monkey -p (包名)  -v -v -v –pct-touch 40 –pct-motion 50 –pct- appswitch 10 –throttle 200 –ignore-crashes –ignore-timeouts 100> D:\monkey\test02.log 

6、命令结束完去相应的路径下查看log就可以啦

三、日志分析

1、日志开头(注意seed值很重要,当出现问题想重现的时候牢记这个seed就可)

显示本次测试seed值,执行次数,测试包

:Monkey: seed=89 count=10

:AllowPackage: com.tencent.music

:IncludeCategory: android.intent.category.LAUNCHER

:IncludeCategory: android.intent.category.MONKEY

2、日志中间

各类型事件的百分比、发送到Activity的事件信息、错误信息等,根据指定的详细级别显示相应的信息

3、日志结尾

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。

(如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。)

Events injected: 10

:Sending rotation degree=0, persist=false

:Dropped: keys=0 pointers=0 trackballs=0 flips=0 rotations=0

Network stats: elapsed time=2794ms (0ms mobile, 0ms wifi, 2794ms not connected)

// Monkey finished

四、如果有崩溃、无响应等可在日志中搜索crash。或直接把日志给开发同事查看就可以啦。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210556.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:24
下一篇 2026年3月19日 上午7:24


相关推荐

  • 奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用

    奇怪的现象:touchesBegan: 与UITapGestureRecognizer手势没有人响应 以及set方法的妙用本打算实现一个点击按钮弹出一个landKindView然后点击屏幕其他部分时移除这个VIew,没想到的是,出了诸多不可思议的问题。在给这个控制器的View添加手势时,然后居然拦截不到,touchesbegin方法,然后又试了下添加tapGesture,依旧是没有反应。然后我试着在touchesBegin方法中 实现[supertouchesBegins….];依旧是没有任

    2022年7月25日
    12
  • FinalShell国产ssh连接工具简单的使用教程

    FinalShell国产ssh连接工具简单的使用教程办公中 使用 xshell 由于用的免费版 经常过段时间就要再去重新申请 比较麻烦 现在换成国产 FinalShell 工具 用了段时间效果不错 一 对应版本下载地址 Windows 版下载地址 http www hostbuf com downloads finalshell install exeMac 版 Linux 版安装及教程 http www hostbuf

    2026年3月17日
    20
  • PHP的安全性问题,你能说得上几个?

    PHP的安全性问题,你能说得上几个?

    2021年10月29日
    54
  • idea2021最新激活码(注册激活)

    (idea2021最新激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    629
  • mysql创建数据库的步骤_sql创建数据库代码

    mysql创建数据库的步骤_sql创建数据库代码作者介绍:陈东明,饿了么北京技术中心架构组负责人,负责饿了么的产品线架构设计以及饿了么基础架构研发工作。曾任百度架构师,负责百度即时通讯产品的架构设计。具有丰富的大规模系统构建和基础架构的研发经验,善于复杂业务需求下的大并发、分布式系统设计和持续优化。个人微信公众号dongming_cdm。Tedis(https://github.com/eleme/tedis)是基于开源TiKV…

    2025年12月7日
    7
  • android之startActivityForResult的使用

    在Android中startActivityForResult主要作用就是:A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy//看效果//看代码[java] view plaincopypackage jason.actres;

    2022年3月10日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号