Monkey基本参数介绍

哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(^▽^)PS:有问题可以联系我们哦v ceshiren001

复制“下方链接”,提升测试核心竞争力!
更多技术文章分享和免费资料领取


说到android移动端稳定性测试,大家通常会想到android系统自动Monkey小猴子,通过Monkey命令模拟用户触摸点击屏幕、滑动、系统按键等操作来对设备上的app进行压力测试,来测试应用的稳定性和健壮性。


下面就说说monkey常用参数的用法~~

1、-help

**
**

作用:列出简单的用法


2、–throttle <milliseconds>

**
**

作用:在事件之间插入固定的时间(毫秒)延迟,你可以使用这个设置来减缓Monkey的运行速度,如果你不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。


一般这里设置为300毫秒,原因是实际上用户操作一个动作事件最快需要300毫秒左右,所以设置太小,也不符合正常用户的使用习惯,设置太大,又会发现不了问题。


用法: adb shell “monkey –throttle 300”


3、–pct-touch <percent>

**
**

作用:调整monkey命令触摸事件的百分比。(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按下并抬起的操作),参数设置要根据被测应用程序的特点来修改设置。


用法:adb shell “monkey --pct-touch 100”


4、–pct-motion <percent>

**
**

作用:调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成),需注意的是滑动事件是直线滑动,不适用曲线滑动。

用法:adb shell “monkey --pct-motion 100”


5、–pct-trackball <percent>

作用:调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)

这个参数现在不常使用,早期的android手机出厂自带滚动球,估计有些小伙伴们见过,但现在手机几乎没有滚动球,至少我没有见过,但滚动球事件中包含曲线滑动事件,如果被测应用需要曲线滑动时可以选用此参数。


用法:adb shell “monkey --pct-trackball 100”


6、–pct-nav <percent>


作用:调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发的事件组成),这个参数不常用。


用法:adb shell “monkey --pct-nav 100”


7、–pct-majornav <percent>

作用:调整主要导航事件的百分比。(这些导航事件通常会导致UI界面中的动作事件,如5-way键盘的中间键,回退按键、菜单按键),这个参数不常用。


用法:adb shell “monkey --pct-majornav 100”


8、–pct-syskeys <percent>

作用:调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、Start Call、End Call、音量调节),这个参数的百分比通常比较小。

用法:adb shell “monkey --pct-syskeys 3”


9、–pct-appswitch <percent>

作用:调整Activity启动的百分比。(在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)

用法:adb shell “monkey --pct-appswitch 100”


10、–pct-anyevent

作用:调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等),这个参数不常用。


用法:adb shell “monkey --pct-anyevent 100”


11、-p <allowed-package-name>

作用:如果你想指定一个或多个应用,Monkey将只启动这些包中的Activity。如果不指定任何包,Monkey将启动系统所有包的Activity。指定多个包,使用多个-p,一个-p后面接一个包名。


用法:adb shell “monkey -p com.Android.browser”


12、–ignore-crashes

作用:应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

用法:adb shell “monkey --ignore-crashes”


13、–ignore-timeouts

作用:应用程序发生任何超时错误(例如:ANR)时,Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。


用法:adb shell “monkey --ignore-crashes”


14、–ignore-security-exception

**
**

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


用法:adb shell “monkey --ignore-security-exception”


15、–kill-process-after-error

作用:当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。


用法:adb shell “monkey --kill-process-after-error”


16、-v


作用:命令行上的每一个-v都将增加反馈信息的详细级别。(最多使用3个-v)

Level 0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level 1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level 2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。


用法:adb shell “monkey -v -v -v”


17、-s<seed>


作用:伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,将生成相同的事件序列。


用法:adb shell “monkey -s 300”


最近测试的项目属于短视频类的,这样结合这些monkey参数和被测应用的特点(滑动和点击操作比较多)。组合的monkey的命令如下:


adb shell “monkey -p com.xxx.video -v -v -v -s 100 --throttle 300 --pct-touch 35 --pct-motion 41 --pct-syskeys 2 --pct-appswitch 20 --pct-anyevent 2 --ignore-security-exceptions --ignore-crashes --ignore-timeouts 1000000 1 >/sdcard/xxxlog.txt 2> /sdcard/xxxlog_error.txt& logcat -v time -d >sdcard/xxx_logcat.txt”




**

哈喽,喜欢这篇文章的话烦请点个赞哦!万分感谢(^▽^)PS:有问题可以联系我们哦v ceshiren001

复制“下方链接”,提升测试核心竞争力!
更多技术文章分享和免费资料领取

<think>好的,我现在需要帮助用户详细了解如何在display id=2的设备上运行Monkey测试,以及Monkey命令的各个参数。首先,用户之前已经得到了一个包含基础命令和参数的回复,现在他们希望更深入地了解这些参数的详细信息,并确保正确应用在display id=2的设备上。 首先,我需要回顾用户提供的引用内容,特别是引用[1]、[2]、[3]和[4],这些内容涵盖了Monkey的基本用途、参数说明以及一些示例命令。用户的需求明确,是要在特定显示设备上运行Monkey,并需要详细的参数解释。 用户的历史对话中已经给出了一个针对display id=2的Monkey命令示例,其中包含了--display参数。现在用户需要更详细的参数详解,这可能包括每个参数的作用、使用场景以及如何调整这些参数以适应不同的测试需求。 接下来,我需要确保回答结构清晰,分点说明Monkey参数,并特别强调如何在多屏环境下使用display参数。根据引用[2]中的信息,参数如--ignore-crashes、--throttle、--pct-touch等都有详细说明,需要整合到回答中。 同时,用户提到要参考之前的回答,其中提到了验证命令组合,如实时窗口焦点监控、唤醒屏幕、坐标确认等。这些内容可能需要包含在进阶配置部分,以帮助用户确保测试正确执行在目标屏幕上。 此外,用户可能关心如何验证Monkey事件确实发生在指定屏幕上,这在之前的相关问题中提到过,可以通过dumpsys window命令来检查当前焦点窗口的DisplayId,这应该作为验证步骤加入回答中。 需要注意用户可能的误区,例如参数的正确顺序、如何组合使用多个参数,以及不同参数测试结果的影响。例如,引用[2]中提到使用多个-v参数来增加日志详细程度,以及使用&符号允许断开数据线继续测试,这些都需要在参数详解中说明。 还需要检查是否有遗漏的重要参数,如--pct-motion、--pct-trackball等,这些参数控制不同事件类型的比例,用户可能需要了解如何调整这些比例以模拟不同的用户操作场景。 最后,确保回答符合用户要求的格式,使用中文,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能不太需要数学公式,但需要正确使用代码块和引用标记。引用文献需要根据用户提供的引用内容正确标注,例如[^1]、[^2]等。 总结步骤: 1. 结构化回答,分为参数详解和display id=2的配置指南。 2. 详细解释每个常用参数的作用和使用示例。 3. 提供针对多屏设备的命令示例,并强调--display参数的重要性。 4. 包含验证步骤,确保测试运行在正确的屏幕上。 5. 添加相关问题,帮助用户进一步探索可能遇到的问题。</think>以下是为您整理的`adb monkey`命令详解及`displayId=2`设备测试方案,结合Android多屏测试最佳实践: --- ### 一、Monkey核心参数详解(基于引用[2][4]) #### 1. **目标应用绑定** ```bash -p com.example.demo # 指定被测应用包名(必选) --display 2 # 绑定到物理屏幕ID=2的设备(1920x1080) ``` #### 2. **事件流控制** ```bash --throttle 300 # 事件间隔300ms(默认0ms) --pct-touch 40 # 触摸事件占比40%(含单击/长按) --pct-motion 30 # 滑动事件占比30%(直线滑动) --pct-trackball 5 # 轨迹球事件占比5%(随机曲线) ``` #### 3. **异常处理机制** ```bash --ignore-crashes # 忽略APP崩溃(测试不中断) --ignore-timeouts # 跳过ANR弹窗(持续测试) --monitor-native-crashes # 监控JNI层崩溃(需root权限) ``` #### 4. **日志与调试** ```bash -v -v -v # 三级详细日志(最高粒度记录) > /sdcard/monkey.log 2>&1 # 日志重定向到手机存储[^2] ``` --- ### 二、displayId=2专用测试方案 #### 1. **基础命令模板** ```bash adb shell monkey --display 2 \ -p com.your.app \ --throttle 500 \ --pct-touch 70 \ --pct-motion 20 \ --ignore-security-exceptions \ --monitor-native-crashes \ -v -v -v 5000 ``` #### 2. **多屏验证技巧 ```bash # 实时查看事件目标屏幕(每秒刷新) watch -n 1 'adb shell dumpsys window displays | grep "mDisplayId\|mFocusedApp"' ``` #### 3. **坐标校准(适配1920x1080) ```bash # 测试右下角菜单点击(坐标需换算) adb -s emulator-5554 shell input tap 1850 1000 ``` --- ### 三、进阶配置建议 #### 1. **事件比例优化 ```math $$ 触摸事件比例 = \frac{目标屏幕触控特性}{总事件类型} \times 100\% $$ ``` - 触控屏设备建议`--pct-touch 60-80` - 车机设备建议增加`--pct-rotation`旋转事件 #### 2. **稳定性增强 ```bash # 保持副屏唤醒(需设备权限) adb shell svc power stayon true # 禁用锁屏超时 adb shell settings put system screen_off_timeout 86400000 ``` --- ### 四、问题排查流程 1. **事件丢失检测** ```bash adb logcat | grep -E "INSTRUMENTATION_STATUS: current" ``` 2. **屏幕绑定验证** ```bash adb shell dumpsys SurfaceFlinger | grep "Active display" # 确认渲染目标 ``` --- ### 相关问题 1. 如何动态调整不同屏幕的事件分布比例? 2. 当测试设备存在多个交互屏时,如何隔离各屏幕的输入事件? 3. 如何通过Monkey实现跨屏拖拽操作的模拟? 通过上述配置,您可以在保证副屏(displayId=2)独立运行测试的同时,精确控制事件类型与频率。建议首次运行时使用`-v -v -v`参数观察事件分布情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值