monkey
是 Android 平台上一个非常有用的工具,它可以帮助开发者在设备上生成随机的用户事件流,如按键输入、触摸屏手势等,以此来测试应用的稳定性。这对于发现应用中的崩溃、异常和性能问题特别有用。
adb shell monkey [OPTIONS]
:要发送的伪随机事件数量。--throttle
:每个事件之间等待的毫秒数。--pct-[event-type]
:设置特定事件类型的百分比。例如: --pct-motion
: 触摸屏幕运动事件--pct-trackball
: 轨迹球事件--pct-nav
: 导航键事件--pct-majornav
: 主导航键(如返回、主页)事件--pct-syskeys
: 系统键(如音量键)事件--pct-appswitch
: 应用切换事件--pct-flip
: 屏幕翻转事件--pct-anyevent
: 任何事件--ignore-[event-type]
:忽略特定类型的事件。例如: --ignore-crashes
: 忽略崩溃--ignore-timeouts
: 忽略超时--ignore-security-exceptions
: 忽略安全异常--ignore-native-crashes
: 忽略本地代码崩溃--ignore-anr
: 忽略无响应状态--kill-process-after-error
:如果发生错误,则终止进程。--monitor-native-crashes
:监控并报告原生代码崩溃。--pkg-blacklist-file
:指定包含不应启动的应用包名黑名单文件。--pkg-whitelist-file
:指定包含应该启动的应用包名白名单文件。--category-blacklist
:指定不应启动的 Intent 类别黑名单。--category-whitelist
:指定应启动的 Intent 类别白名单。--only-current
: 只在当前应用中运行。--hprof
: 生成 hprof 文件以进行内存分析。--dbg-level
: 设置调试级别 (0-3)。--seed
: 设置随机种子值,以便可以重现测试序列。假设你想让 Monkey 运行 1000 次事件,其中 50% 是触摸屏幕事件,20% 是导航键事件,并且在每个事件之间等待 500 毫秒,你可以使用以下命令:
adb shell monkey --pct-motion 50 --pct-nav 20 --throttle 500 1000
Monkey 脚本是一种用于自动化 Android 设备上的随机事件生成的方法,这有助于测试应用程序的稳定性和健壮性。下面是一个简单的 Monkey 脚本示例,以及如何创建和执行这样的脚本。
我们将创建一个简单的 Bash 脚本来运行 Monkey 测试。这个脚本会自动执行一系列 Monkey 操作,并记录输出。
首先,在你的计算机上创建一个新的 Bash 脚本文件。你可以使用任何文本编辑器来创建这个文件。这里我们命名为 run_monkey.sh
。
#!/bin/bash # 定义变量 PACKAGE_NAME="com.example.myapp" EVENT_COUNT=5000 THROTTLE_TIME=500 SEED=12345 # 输出 Monkey 的命令行帮助信息 echo "Running Monkey Test..." # 运行 Monkey 命令 adb shell "monkey --package $PACKAGE_NAME \ --throttle $THROTTLE_TIME \ --pct-motion 50 \ --pct-nav 20 \ --pct-majornav 10 \ --pct-syskeys 10 \ --pct-appswitch 5 \ --pct-flip 5 \ --ignore-crashes \ --ignore-timeouts \ --ignore-security-exceptions \ --kill-process-after-error \ --monitor-native-crashes \ --randomize-throttle \ --seed $SEED \ $EVENT_COUNT" # 检查输出 echo "Monkey test finished. Checking the output..."
PACKAGE_NAME
: 指定你要测试的应用程序的包名。EVENT_COUNT
: 指定 Monkey 要执行的事件总数。THROTTLE_TIME
: 指定每个事件之间的延迟时间(毫秒)。SEED
: 指定随机种子,这样你可以重现相同的测试序列。adb shell
: 通过 ADB 向设备发送命令。--package
: 限制 Monkey 事件只作用于指定的应用包。--throttle
: 设置事件之间的延迟时间。--pct-*
: 设置各种事件类型的百分比。--ignore-*
: 设置 Monkey 忽略某些类型的错误。--kill-process-after-error
: 如果发生错误则停止该应用。--monitor-native-crashes
: 监控并报告原生代码崩溃。--randomize-throttle
: 随机化事件之间的延迟时间。--seed
: 设置随机种子。为了执行这个脚本,你需要确保你的设备已经连接到电脑并通过 ADB 进行调试。此外,你需要给予脚本执行权限,并且在终端中运行它。
给脚本执行权限:
chmod +x run_monkey.sh
运行脚本:
./run_monkey.sh
sudo
或者将脚本放在具有适当权限的目录下。这就是一个基本的 Monkey 测试脚本。你可以根据自己的需要对其进行扩展和修改。