ADB Monkey 基本用法及命令示

ADB Monkey 是 Android 平台提供的一个命令行工具,用于向设备发送伪随机用户事件流(如点击、触摸、手势等),主要用于压力测试和稳定性测试。

 基本用法

adb shell monkey [options] <event-count>

 常用命令选项

1. 基本参数

-p <package-name>`:指定测试的包名(可多次使用指定多个包)
- v:设置日志详细级别(1-3个-v,越多越详细)
- `<event-count>`:要发送的事件数量

 2. 事件类型控制

--pct-touch <percent>`:触摸事件百分比
--pct-motion <percent>`:动作事件百分比
--pct-trackball <percent>`:轨迹球事件百分比
--pct-nav <percent>`:基本导航事件百分比
--pct-majornav <percent>`:主要导航事件百分比
--pct-syskeys <percent>`:系统按键事件百分比
--pct-appswitch <percent>`:Activity启动事件百分比
--pct-anyevent <percent>`:任意事件百分比

3. 约束条件

-c <category>`:指定允许的Intent类别
--throttle <milliseconds>`:事件间延迟(毫秒)
--ignore-crashes`:忽略崩溃继续测试
--ignore-timeouts`:忽略ANR继续测试
--ignore-security-exceptions`:忽略权限错误继续测试

 4. 调试选项

--dbg-no-events`:初始化但不发送事件
--hprof`:测试前后生成profiling报告
--monitor-native-crashes`:监视native代码崩溃
--kill-process-after-error`:出错时杀死进程

常用示例

1.基本测试

# 向设备发送500个随机事件
adb shell monkey 500

 2. 测试特定应用 

# 测试com.example.app应用,发送1000个随机事件
adb shell monkey -p com.example.app 1000

3. 设置事件类型比例 

#设置触摸事件40%,动作事件25%,Activity启动15%,其余20%
adb shell monkey -p com.example.app \
--pct-touch 40 --pct-motion 25 --pct-appswitch 15 \
--throttle 100 1000

4. 详细日志输出

# 三级详细日志,忽略崩溃和超时
adb shell monkey -p com.example.app -v -v -v \
--ignore-crashes --ignore-timeouts 2000

5.可复现的测试(固定随机种子) 

# 三级日志,忽略崩溃和 ANR,测试 2000 次
adb shell monkey -p com.example.app -v -v -v \
--ignore-crashes --ignore-timeouts 2000 

6.结合logcat监控

# 在另一个终端窗口运行 logcat 监控日志
adb logcat -v time | grep "AndroidRuntime" 

7.用户延时操作(时间单位是毫秒)

adb shell monkey -p com.example.login --throttle 300 100

 带约束条件的测试

# 测试多个应用,事件间延迟300ms,忽略权限错误
adb shell monkey -p com.example.app1 -p com.example.app2 \
--throttle 300 --ignore-security-exceptions 1500

 停止Monkey测试

如果测试过程中需要停止,可以在另一个终端窗口执行:
adb shell ps | grep monkey  # 查找monkey进程ID
adb shell kill [pid]       # 结束monkey进程

或者更简单的方式:

adb shell killall com.android.commands.monkey

我常用的命令

adb shell monkey -p com.tataera.edushu --pct-touch 80 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions  -vvv 1000

然后再开一个cmd
adb logcat -s AndroidRuntime -b crash -v threadtime
若有错误指定相同种子
adb shell monkey -p com.tataera.edushu --pct-touch 80 --throttle 300 --ignore-crashes --ignore-timeouts --ignore-security-exceptions -vvv -s 1753845230868 1000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值