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

article/2025/10/6 22:55:14

一、Monkey简介:

Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击、滑动、Application切换、横竖屏、应用关闭)实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性,健壮性的快速有效的方法。只针对Activity做测试,不能对Service做测试。

二、质量要求:

版本release(发布)前,Monkey跑出来的结果中crash要为0,final release前,Monkey跑完的总次数应为25W,结果里不允许有nullPointException出现。

三、Monkey命令参数:

1>  -p

用于约束限制,用此参数指定一个或者多个包,指定包之后,monkey将只允许启动指定app,如果不指定包,monkey将启动系统中所有的app 。

例:指定一个包     monkey -p com.htc.weather -v 1000
指定多个包     monkey -p com.htc.weather -p com.htc.pdfreader -p com.htc.photo.widgets -v 1000
不指定包          monkey -v 1000

2>  -v

用于指定反馈的信息级别(日志的详细程度),分为三个级别,级别越高,日志越详细。

level 0:

例:monkey -p com.htc.weather -v 1000

level 1:
例:monkey -p com.htc.weather -v -v 1000
level 2:
例:monkey -p com.htc.weather -v -v -v 1000

3> -s

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

例: monkey -p com.htc.weather -s 35 -v 1000

4> --throttle(毫秒)

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

例:monkey --throttle 300

5> 定制事件

--pct-touch:指定触摸事件的百分比,例:--pct-touch 5%    , 其他相关的:
--pct-motion <percent> (滑动事件)
--pct-trackball <percent> (轨迹球事件) 
--pct-nav <percent> (导航事件 up/down/left/right)
--pct-majornav <percent> (主要导航事件 back key 、 menu key) 
--pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)
--pct-appswitch <percent> (activity之间的切换)
--pct-anyevent <percent>(任意事件)

6>调试选项

--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告  —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。

四、使用示例:(本例测试环境Android studio+模拟器Nexus_5_API_23)真机的话需要获取root权限

1>首先配置Android环境,要使用虚拟机测试的话,还要创建模拟器(真机测试就不用管)。

2>进入平台工具,我的platform-tools在下图所示路径

在Android studio自带的命令行(或者是cmd)里输入以下命令

3>启动模拟器(执行adb devices命令可以列出已连接的设备),安装待测试apk

先把apk放在platform-tools文件夹下,执行命令: adb install 文件名.apk

4>找到应用程序的主Activity所在的包名,分别执行以下命令:

ls命令执行之后从列出的包名中找到要测试的apk的主Activity的包名。

5>使用monkey进行自动化测试

monkey -p 包名 -v 1000

五、测试结果分析:

1>

2>

3>

4>

5>测试完成,没有crash和exception出现的情况

6>测试中间出现crash或者exception,monkey停止会打印相关错误信息。

六、monkey测试停止条件(也可以在命令里设置出现这些停止条件后可以继续跑完测试数量)

1>如果先顶了Monkey运行在一个或几个特定的包上,那么它会检测试图转到它包的操作,并对其进行阻止;

2>如果应用程序崩溃或接收到任何失控异常,Monkey将停止并报错;

3>如果应用程序产生了应用程序不响应(application not responding)的错误,Monkey将会停止并报错。

    通过多次并且不同设定下的Monkey测试才算它是一个稳定性和健壮性足够的程序。

七、为保证测试数量的完整进行,一般不会在发生错误时立刻退出压力测试。monkey 测试命令如下

adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000

八、把log导出到本地

这里分为两种情况:

1.如果我们没有进入到shell则直接执行命令:

adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > E:\monkey_log\test1.txt

2.

如果已经进入adb shell,正确的导出步骤:(在前边我们执行完adb shell命令之后,进入shell命令相当于进入Linux的root下面,没有权限在里面创建文件。)

执行exit命令退出shell

然后执行adb shell monkey -p 包名 -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v -v 10000 > E:\monkey_log\test1.txt


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

相关文章

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;有助于我…

使用 clumsy 模拟极端网络状况

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

clumsy使用简介

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

clumsy 弱网测试工具

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

弱网测试工具—— clumsy

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

ClickOnce是什么?如何使用?

ClickOnce是一种部署方式&#xff0c;主要解决C/S软件版本更新后&#xff0c;所有客户端都要重新安装的问题。 场景&#xff1a;假如&#xff0c;你的客户有1000个&#xff0c;你的服务端更新后&#xff0c;这1000个客户都要重新安装&#xff0c;难道要员工一个一个的电话通知客…