Monkey Test简单介绍

article/2025/10/6 21:58:09

什么是Monkey Test?顾名思义,就像一只猴子一样,它的下一步具有随机性。所以Monkey Test可以简单地理解为动作随机性测试!

Monkey是android模拟器或设备上运行的一个程序。它可以生成伪随机用户事件(例如点击、触碰或滑动等)流和很多的系统级事件(启动app activity等),对某个或某些指定的app应用进行压力测试,且能够生成日志分析文件。

为什么说它是伪随机呢?从多次调用Monkey命令生成的事件流看,它具有随机性。但是从每次调用Monkey命令来看,它是确定好的事件流。

直白点,本来需要手动地连续地长时间地对app程序做"点击"、“触碰”、“滑动”、"缩放"等动作的压力测试,现在让Monkey程序生成事件流完成了

1、查找Monkey程序

Monkey虽然是android系统中自带的程序,使用前还是需要先检查是否存在,可以使用adb命令进入android系统查看:

adb shell
cd /system/framework/
ls | grep monkey

monkey.jar

monkey.jar就是monkey程序,它由一个叫作monkey的shell脚本启动执行。shell脚本的存放路径为:/system/bin

adb shell
cd /system/bin
ls | grep monkey

monkey

2、Monkey命令参数

在adb shell进入android系统后,输入monkey命令,显示monkey程序的参数描述:

参数

常用参数含义如下:

类别参数描述
约束条件-p <allowed-package-name>需要测试的软件。一个-p对应一个软件,多个软件需要用多个-p。如果不使用-p指定软件,就表示指定所有的软件都需要测试
--pkg-whitelist-file PACKAGE_WHITELIST_FILE被测软件白名单。需要测试的软件可以放在白名单txt文件中,而txt文件需要放在android系统的某个路径下。和多个-p实现相同的作用
--pkg-blacklist-file PACKAGE_BLACKLIST_FILE被测软件黑名单,不测试的软件可以放在黑名单txt文件中。那么测试的就是黑名单外的软件
调试--ignore-crashes当应用崩溃或遇到任何类型的未处理异常时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--ignore-timeouts当应用遇到任何类型的超时错误(例如“应用无响应”对话框)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--ignore-security-exceptions当应用遇到任何类型的权限错误(例如,如果它尝试启动需要特定权限的 Activity)时,Monkey 将会停止。如果指定此选项,Monkey 会继续向系统发送事件,直到计数完成为止
--monitor-native-crashes监视并报告 Android 系统原生代码中发生的崩溃。如果设置了 --kill-process-after-error,系统将会停止
--ignore-native-crashes忽略Android系统原生代码中发生的崩溃
--kill-process-after-error当 Monkey 因出错而停止运行时,出现故障的应用将保持运行状态。设置此选项后,它将会指示系统停止发生错误的进程
--wait-dbg阻止 Monkey 执行,直到为其连接了调试程序
事件-s <seed>伪随机数生成器的种子值。当两次运行monkey时的seed值相同时,事件流相同。可以用它来复现问题
--throttle <milliseconds>在事件之间插入固定的延迟时间
--pct-touch <percent>设置触碰屏幕事件的百分比
--pct-motion <percent>设置滑动屏幕事件的百分比
--pct-trackball <percent>调整轨迹球事件所占百分比。(轨迹球事件包括一个或多个随机动作,有时后跟点击。)
--pct-nav <percent>调整“基本”导航事件所占百分比。(导航事件包括向上/向下/向左/向右,作为方向输入设备的输入。)
--pct-majornav <percent>调整“主要”导航事件所占百分比。(这些导航事件通常会导致界面中的操作,例如 5 方向键的中间按钮、返回键或菜单键。)
--pct-syskeys <percent>设置系统按键事件的百分比
--pct-appswitch <percent>Activity启动事件的百分比
--pct-anyevent <percent>调整其他类型事件所占百分比。这包括所有其他类型的事件,例如按键、设备上的其他不太常用的按钮等等
--pct-pinchzoom <percent>设置缩放操作的百分比
--pct-flip <percent>设置翻转操作的百分比
其他-v输出日志的详细程度。每个 -v 都会增加详细程度级别。级别 0(默认值)只提供启动通知、测试完成和最终结果。级别 1 提供有关测试在运行时的更多详细信息,例如发送到您的 Activity 的各个事件。级别 2 提供更详细的设置信息,例如已选择或未选择用于测试的 Activity
COUNT随机事件次数

所有事件的百分比之和不能超过100!!!

touch事件占大头;导航事件用在导航app上;车机系统一般没有翻转事件

以上参数描述来自官方文档:https://developer.android.com/studio/test/monkey?hl=zh-cn

3、Monkey命令示例

示例

这么长的命令,如果每次执行都需要手动输入,未免太麻烦了些!如果某个功能需要多条命令或多个参数处理,我们可以放在批处理文件中执行!



http://chatgpt.dhexx.cn/article/TJhS1nal.shtml

相关文章

monkey工具详解

第一部分&#xff1a;背景 1.为什么要开展压力测试&#xff1f; 提高产品的稳定性 提高产品的留存率 2.什么时候开始压力测试&#xff1f; 首轮功能测试通过后 下班后的夜间进行 第二部分&#xff1a;理论 1.什么是monkey&#xff1f; Monkey是发送伪随机用户事件的工…

monkey的基本使用

一、monkey介绍 1.功能&#xff1a;采用伪随机测试的方式&#xff0c;来完成app的稳定性测试 2.执行原理&#xff1a;通过monkey的shell脚本去执行安卓系统中自带的monkey.jar工具 3.通常用于盲测&#xff0c;压力测试和冒烟测试 1&#xff09;盲测&#xff1a;忽略功能和业务逻…

Monkey使用详解

App monkey 使用篇 安装包下载&#xff1a; 下载mumu模拟器地址&#xff1a;http://mumu.163.com/baidu/ 下载adb安装包 地 址&#xff1a;http://www.downza.cn/soft/219906.html Adb环境变量 配 置&#xff1a;在path里新建adb安装路径即可。 cmd 打开命令提示符窗口输入&a…

monkey的基本定义及基本使用(菜鸟学习中)

一.monkey的定义 1.(转自 https://blog.csdn.net/beyond_f/article/details/78543070 ) Monkey程序由Android系统自带&#xff0c;使用Java语言写成&#xff0c;在Android文件系统中的存放路径是&#xff1a;/system/framework/monkey.jar&#xff1b; Monkey.jar程序是由一…

Android测试--monkey详细到炸的总结

一、Monkey简介&#xff1a; Monkey是Android中的一个命令行工具&#xff0c;可以运行在模拟器里或者现实设备中&#xff0c;向系统发送伪随机的用户事件流&#xff08;点击、滑动、Application切换、横竖屏、应用关闭&#xff09;实现对正在开发的应用程序进行压力测试。monk…

APP稳定性测试利器 Monkey介绍、实战使用、日志分析

第一、Monkey简介 Monkey是什么&#xff1f; Monkey 是安卓官方提供的一个命令行工具&#xff0c;可以运行在Android模拟器和实体手机上。通过Monkey 来模拟用户的触摸、点击、滑动、系统按键的操作&#xff0c;来对APP进行压力测试、稳定性测试。换句话说&#xff0c;就是在乱…

Clumsy弱网、丢包测试工具

一、下载clumsy安装包&#xff0c;解压后打开clumsy.exe 二、ping www.baidu.com查看是否模拟成功 三、pc端模拟丢包和网络延迟 四、APP端模拟丢包和网络延迟 1.手机连接抓包工具charles 2.打开clumsy&#xff0c;在过滤器filtering中输入outbound and ip.DstAddr 192.168.…

【弱网】clumsy的filter语法设置

clumsy 官方说明 jagt WinDivert 的语法 https://github.com/basil00/Divert/wiki/WinDivert-Documentation#7-filter-languageDivert大神们的改版 clumsy-regoutbound 发送 inbound

弱网测试工具clumsy

clumsy 能在 Windows 平台下人工造成不稳定的网络状况&#xff0c;方便你调试应用程序在极端网络状况下的表现。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来&#xff0c;人工的造成延迟&#xff0c;掉包…

使用clumsy模拟网络延迟

为何模拟网络延迟 由于最近打算做及时对战类的游戏&#xff0c;对于及时对战类的游戏&#xff0c;首先要解决的问题就是网络延迟的问题。网络延迟对于游戏的体验至关重要。那么开发一款网络游戏要怎么解决这一问题呢。想要解决网络延迟&#xff0c;首先就要模拟网络延迟。那么…

[测试]Clumsy网络模拟工具

笔者最近因为需要在局域网内模拟一个实际情况&#xff08;即存在丢包、延迟等情况&#xff09;。网上搜了很多工具&#xff0c;大多基于linux。后来好不容易在网上搜索到一款2014年出现的网络模拟工具----Clumsy。 &#xff08;参考了http://jagt.github.io/clumsy/&#xff09…

curle(curley)

Queen Elizabeth is afraid of Mary. Bess Curle wrote the story. 这两句什么意思&#xff1f; 伊丽莎白女王害怕玛丽&#xff0c;Bess Curle写(说)出了这个道理。(这里的story成为道理&#xff0c;事实意义&#xff0c;不再只是故事的意思)&#xff0c;希望对你有帮助&#x…

网络抖动工具clumsy

网络抖动工具clumsy 下载与安装 下载地址&#xff1a;https://download.csdn.net/download/Asia1752/85192646 使用 说明&#xff1a; 1、Lag(延迟)&#xff0c;把数据包缓存一段时间后再发出&#xff0c;这样能够模拟网络延迟的状况。 2、Drop(掉包)&#xff0c;随机丢弃一…

网络丢包工具clumsy

以webrtc为例&#xff0c;未开始前 设置丢包率10%后&#xff0c;丢包会增加&#xff0c;如下图&#xff1a; Lag是延迟。设置后&#xff0c;增加网络延迟

Windows下网络环境模拟工具-Clumsy

公司设备需要模拟在弱网(如&#xff1a;延迟、丢包)环境下进行数据的传输&#xff0c;网上看资料找到一款工具Clumsy( 文章出处&#xff1a;Clumsy-Windows下网络环境模拟工具_clumsy工具_Hello&#xff0c;C&#xff01;的博客-CSDN博客),安装进行模拟&#xff0c;基本可以满足…

弱网测试工具 clumsy

clumsy工具介绍 clumsy 能在 Windows 平台下人工造成不稳定的网络状况&#xff0c;方便你调试应用程序在极端网络状况下的表现。下面根据工作中遇到过的实际场景介绍一下clumsy工具的使用方法。 下载安装&#xff1a;clumsy下载链接 场景&#xff1a;测试客户端下载文件失败&…

Clumsy的使用方法

Clumsy的使用方法&#xff1a; 1、 解压clumsy-0.2-win64.zip&#xff08;下载地址&#xff1a;https://files-cdn.cnblogs.com/files/nimq/clumsy-0.2-win64.zip&#xff09;注&#xff1a;只适用于Windows 64位电脑&#xff0c;其他系统版本需要下载适配的版本 2、 打开clu…

Clumsy-Windows下网络环境模拟工具

下载页 http://jagt.github.io/clumsy/cn/download 项目的代码可以在github上获取&#xff0c;在下载页面有编译好的版本。强烈建议在使用前花点时间阅读一下文档&#xff0c;来 了解 clumsy 的功能和限制。 目前的实现中有一些难以绕过的限制和问题&#xff0c;列表如下&…

Clumsy

笔者最近因为需要在局域网内模拟一个实际情况&#xff08;即存在丢包、延迟等情况&#xff09;。网上搜了很多工具&#xff0c;大多基于linux。后来好不容易在网上搜索到一款2014年出现的网络模拟工具----Clumsy。 &#xff08;参考了http://jagt.github.io/clumsy/&#xff09…

clumsy使用简介(模拟弱网)

前提&#xff1a;使用过Fiddler弱网模式的小伙伴&#xff0c;应该都体会过&#xff0c;模拟弱网的时候&#xff0c;只是均匀的慢&#xff0c;但是实际场景可能是网络会波动的&#xff0c;而clumsy不但能设置延迟&#xff0c;还能设置节流、重发、乱序等模式&#xff0c;有助于我…