monkey基础 (3) - monkey 参数
1|0参数分类
- 常规类参数
- 事件类参数
- 约束类参数
- 调试类参数
1|1常规类参数
常规类参数包括帮助参数和日志信息参数。帮助参数用于输出Monkey命令使用指导;日志信息参数将日志分为三个级别,级别越高,日志的信息越详细。
1.帮助类参数
2.日志级别
-v:打印出日志信息,每个-v将增加反馈信息的级别。-v越多日志信息越详细,不过目前最多支持3个-v,即:
1|2事件类参数
事件类参数的作用是对随机事件进行调控,从而使其遵照设定运行,如设置各种事件的百分比、设置事件生成所使用的种子值等。频率参数主要限制事件执行的时间间隔。
1.执行指定脚本
eg:
2.伪随机数生成种子值
使用 -s命令可以重复执行之前的伪随机操作。本身每次执行伪随机事件操作也会默认生成一个seed值
eg:
3.设置间隔 如果你希望在每一个指令之间加上固定的间隔时间(毫秒),可以用--throttle(注意,前面是--)命令。
eg:
--throttle:后面接时间,单位为ms(
4.调整触摸事件百分比
如果你希望调整触摸事件的百分比,记住使用--pct-touch。
eg:
注意:触摸事件不单单是按键,它泛指发生在某一位置的一个down-up事件。
5.调整手势事件百分比
eg:
6.调整应用启动事件的百分比
如果你希望调整应用启动事件的百分比,记住使用--pct-app-switch。
--pct-appswitch:后面接应用启动事件百分比。
应用启动事件(即activity launches)俗称打开应用,通过调用startActivity()方法最大限度地开启该package下的所有应用。
7.调整屏幕旋转事件百分比
--pct-rotation 后面接屏幕旋转事件的比例值。
1|3约束类参数
包约束
-p:后面接一个或多个包名(
eg:
activity类约束(不熟悉android的话用默认即可)
如果你希望将monkey限制在一个或几个类别中,使用如下命令:
以下命令表示运行Intent.CATEGORY_LAUNCHER类别的Activity并发送1000个随机事件。
1|4调试类参数
应用程序崩溃后继续发送事件
如果你希望monkey在应用程序崩溃后继续发送事件,则需要用到--ignore-crashes命令
在设置此选项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此选项,monkey遇到上述崩溃或异常将停止运行。
超时错误继续发送事件
如果你希望monkey在任何超时错误发生后继续发送事件,则需要用到--ignore-timeouts命令。
应用程序权限错误发生后继续发送事件
如果你希望monkey在应用程序权限错误发生后继续发送事件,则需要用到--ignore-security-exceptions命令。
2|0Monkey参数应用综合案例
2|1测试场景
测试考研帮app Android版。测试希望通过Monkey来模拟用户的随机操作,检查被测应用是否会出现异常(应用崩溃或者无响应)。
2|2需求分析
1、测试是指定应用,因此需要使用-p指定被测app包名:com.tal.kaoyan
2、这个测试的目的是希望模拟用户操作,因此需要让Monkey执行的事件尽可能地接近用户的常规操作,这样才可以最大限度地发现用户使用过程中可能出现的问题。因此需要对Monkey执行的事件百分比做一些调整:
触摸事件和手势事件是用户最常见的操作,所以通过--pct-touch
和--pct-motion
将这两个事件的占比调整到40%
与25%
;目标应用包含了多个Activity,为了能覆盖大部分的Activity,所以通过--pct-appswitch
将Activity切换
的事件占比调整到10%
;被测应用在测试中出现过不少横竖屏之间切换的问题,这个场景也必须关注,因此通过--pct-rotation
把横竖屏切换事件调整到10%
。
3、使用-s
参数来指定命令执行的seed值 Monkey会根据seed值来生成对应事件流,同一个seed生成的事件流是完全相同的。这里指定了seed值,是为了测试发现问题时,便于进行问题复现。
4、使用--throttle
参数来控制Monkey每个操作之间的时间间隔 指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过--throttle
设置Monkey每个操作固定延迟0.4秒
。
5、使用--ignore-crashs
和--ignore-timeouts
参数使Monkey遇到意外时能继续执行 在执行Monkey测试时,会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数--ignore-crashs
和--ignore-timeouts
,让Monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试。
6、使用-v
指定log的详细级别 Monkey的日志输出有3个级别:日志的级别越高,其详细程度也越高。为了方便问题的定位,这里将日志设为 -v -v
.
2|3测试命令
__EOF__

本文链接:https://www.cnblogs.com/dongye95/p/15310650.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!