APP测试— 测试工具mokey

APP测试— 测试工具mokey1Mokey 概念 1 Monkey 是 AndroidSDK 提供的一个命令行工具 可以简单 方便的运行任何版本的 Android 模拟器和实体设备 Monkey 它向系统发送伪随机的用户事件流 如按键输入 触摸屏输入 手势输入等 实现对正在开发的应用程序进行压力测试 Monkey 测试是一种为了测试软件的稳定性 健壮性的快速有效方法 2 ADB 环境 Monkey 测试使用的是 ADB 命令 因此只需要 ADB 环境 adb 就是连接 Android 手机与 PC 端的桥梁 可以让用户在电脑上对手机进行全面的操作 2 运行 Monk

1 Mokey概念

1)Monkey是Android SDK提供的一个命令行工具,可以简单、方便的运行任何版本的Android模拟器和实体设备。Monkey它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法。

2)ADB环境:Monkey测试使用的是ADB命令,因此只需要ADB环境(adb就是连接Android 手机与PC端的桥梁,可以让用户在电脑上对手机进行全面的操作)

2 运行Monkey(对手机进行300次无规律点击)

1)查看包名(相机camera)

3 Mokey常规参数

1)-help 作用:列出简单的用法
在这里插入图片描述
2) -v的作用:命令行上的每一个 -v都将增加反馈信息的详细级别。

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

level1(2个v),提供了较为详细的测试信息,如逐个发送到Activity的事件信息。

level2(3个v),提供了更多设置信息,如测试中选中或未选中的Activity信息

  • 常用-v-v-v,最多详细信息,一般会保存到指定文件中提供开发人员查找bug原因的使用

4 Monkey 事件类参数

1)-s(随机数种子)作用:用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。示例:
实例1:adb shell monkey -s 10 -v 30
30次无规律点击,测试完成和最终结果外只提供较少的信息。随机数生成器的seed为10
在这里插入图片描述
2)–throttle
<毫秒>
作用
:用于指定用户操作(事件)间的延时,单位是毫秒;在事件之间插入固定延迟,通过这个选项可以减缓Monkey执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快的产生。



注意:常用参数,一般设置为300ms,原因是实际用户操作的最快300ms左右一个动作事件,所以此处一般设置为300ms。

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

monkey参数
在这里插入图片描述

–pct-touch < percent >作用:调整触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作)

注意:
常用参数,此参数设置要适应当前被测应用程序的操作,比如一个应用80%的操作都是触摸,那就可以将此参数的百分比设置成相应较高的百分比

实例:
adb shell monkey -p com.android.camera –pct-touch 100 -v 10
在这里插入图片描述

–pct-motion < percent >作用:调整motion事件百分比。
(motion事件是由屏幕上某处一个down事件,一系列伪随机的移动事件和一个up事件组成)
注意:
常用参数,需要注意的是移动事件是直线滑动
实例:
shell monkey –pct-motion 100 -v 10在这里插入图片描述




4)以下是不常用事件:

–pct-trackball < percent >作用:调整滚动球事件百分比。(滚动事件由1个或多个随机的移动事件组成,有时会伴随着点击事件)
注意
不常使用参数,现在手机几乎没有滚动球,但滚动球事件中包含曲线滑动事件,在被测程序需要曲线滑动时可以选用此参数。
例如:adb shell monkey –pct-trackball 100 -v 10
–pct-nav < percent > 作用:调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发的事件组成)
注意:不常用
例如:adb shell monkey –pct-nav 100 -v 10





–pct-majomav < percent >作用:调整主要导航事件的百分比。(这些导航事件通常会导致UI姐中的动作事件,如5-way键盘的中间键,回退按键、菜单按键)
注意:不常用操作
例如:adb shell monkey –pct-majornav 100 -v 10

–pct-syskeys < percent >作用:调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、Start Call、End Call、音量调节)
注意:不常用
例如:adb shell monkey –pct-syskeys 100 -v 10
–pct -appwitch < percent >
作用:调整Activity启动的百分比。(随机的时间间隔,Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)
注意:不常用
例如:adb shell monkey –pct-appswitch 100 -v 5
–pct-anyevent
作用:调整其他事件的百分比。(包含所有其他事件,如按键、其他在设备上不常用的按钮等)
注意:不常用
例如:adb shell monkey –pct-anyevent 100 -v 5









–pct-anyevent 100 1000 指定多个类型事件的百分比
注意:各事件类型的百分比总数不能超过100%
例如:adb shell monkey -p com.android.camera –pct-anyevent 30 –pct-appswitch 70 -v 10

5)Monkey 百分比事件

5 Monkey 约束类参数

1)-p
<允许的包名列表>

作用:可指定一个包或多个包,指定后monkey将只允许系统启动指定的包,如果不指定包,monkey将允许系统启动设备中的所有app。

注意:常用参数

  • 指定1个包(10是点击数): adb shell monkey -p 包名 10
  • 指定多个包(10是点击数): adb shell monkey -p 包名1 -p 包名2 10

2)–ignore-crashes

实例1:adb shell monkey -p com.android.camera –ignore-crashes 1000
测试过程中即使camera程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止
sh

实例2:adb shell monkey -p com.android.camera 1000
测试过程中,如果camera程序崩溃,monkey将会停止运行。
在这里插入图片描述
3)–ignore-timeouts


作用:通常应用程序发生任何超时错误(如:”Application Not respnding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。
注意:常用

4)–ignore-security-exception

作用:当程序发生许可错误(例如启动一些需要许可的Activity,正数许可,网络许可等)导致的异常时,Monkey将停止运行。设置此项。Monkey将继续发送事件给系统,直到事件计数完成,
注意:常用

杀进程(com.netease.qa.emmage/.activity.MainPageActivity)
adb shell ps | findstr emmage
adb shell kill pid

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

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

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


相关推荐

  • 程序员的最炫民族风[通俗易懂]

    程序员的最炫民族风[通俗易懂]最近公司其它项目组加班比较多,自然bug也是海海的,同事有感而发,写下了这首程序员的最炫民族风苍茫的Bug是我的爱绵绵的Bug票起出来什么样的Bug是最呀最难改什么样的变更才是最开怀长长的代码写出来前台的Check到底改不改火辣辣的RedMine是我们的期待改成解决状态才是最自在我们要改就要改得最痛快你是我心中最难的Bug让我用心把你改出来(

    2026年2月14日
    4
  • linux卸载JDK

    linux卸载JDK[root@teajava]#rpm-qa|grepjdk[root@teajava]#rpm-ejdk-1.7.0_79-fcs.x86_64

    2022年10月1日
    3
  • logstash 配置文件编写详解

    logstash 配置文件编写详解说明它一个有 jruby 语言编写的运行在 java 虚拟机上的具有收集分析转发数据流功能的工具能集中处理各种类型的数据能标准化不通模式和格式的数据能快速的扩展自定义日志的格式能非常方便的添加插件来自定义数据通过在配置文件编写输入 input 过滤 filter 输出 output 相关规则 对数据收集转发 配置文件编写语法大致格式如下 输入 input

    2026年3月17日
    2
  • eclipse SVN插件_eclipse安装svn

    eclipse SVN插件_eclipse安装svn利用中文插件,我们可以更加直观的理解ecli

    2022年10月14日
    8
  • eureka集群配置_hadoop高可用集群搭建

    eureka集群配置_hadoop高可用集群搭建Eruka高可用(集群)EurekaServer高可用配置(1)高可用是什么?“高可用性”(HighAvailability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性如:给EurekaServer搞一个备份(2)服务同步原理多个EurekaServer之间也会互相注册为服务,当服务提供者注册到EurekaServer集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到EurekaServer集

    2022年8月21日
    9
  • OpenClaw 安卓设备接入指南:从零开始配置你的移动节点

    OpenClaw 安卓设备接入指南:从零开始配置你的移动节点

    2026年3月16日
    4

发表回复

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

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