Android monkey命令和monkey脚本详解
创始人
2024-12-18 03:37:13
0

Monkey命令

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 测试之前,请确保备份好数据,因为它可能会导致数据丢失或混乱。
  • 如果你的应用需要特定的权限,你可能需要先授予这些权限。
  • 通常,Monkey 测试会在设备上运行,所以确保设备连接到电脑并且开启了 USB 调试模式。

Monkey脚本

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 进行调试。此外,你需要给予脚本执行权限,并且在终端中运行它。

  1. 给脚本执行权限:

    chmod +x run_monkey.sh 
  2. 运行脚本:

    ./run_monkey.sh 

注意事项

  • 确保你的设备已经连接到电脑,并且开启了 USB 调试模式。
  • 如果你在运行脚本时遇到权限问题,尝试使用 sudo 或者将脚本放在具有适当权限的目录下。
  • 根据你的需求调整脚本中的参数,比如事件数量、事件类型比例等。

这就是一个基本的 Monkey 测试脚本。你可以根据自己的需要对其进行扩展和修改。

相关内容

热门资讯

IA解析/金花房卡批发玄灵大厅... IA解析/金花房卡批发玄灵大厅/上游房卡多少钱一张Sa9Ix苹果iPhone 17手机即将进入量产阶...
科普!微信炸金花房卡找谁买,拼... 微信游戏中心:拼三张房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信拼三张房...
微信炸金花链接怎样弄/在哪里买... 微信炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
终于发现!微信里面斗牛房卡在哪... 微信游戏中心:斗牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
科技实测!金花房卡出售星驰娱乐... 星驰娱乐房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
科普!如何创建炸金花房间链接,... 微信游戏中心:炸金花房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信炸金花房卡...
给大家讲解“微信群发的链接金花... 新众乐牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房...
推荐一款!牛牛房卡制作链接新海... 微信游戏中心:新海贝/青鸟大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或...
分享!微信创建炸金花好友房间/... 炸金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33699510许多玩家在游戏中会购买房卡来享...
终于发现!微信里面斗牛链接房卡... 微信游戏中心:斗牛房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信斗牛房卡”...
正规平台有哪些,金花房卡如何购... 正规平台有哪些,金花房卡如何购买鸿运大厅/房卡微信链接Sa9Ix苹果iPhone 17手机即将进入量...
科普!玩金花房卡在哪购买,拼三... 微信游戏中心:拼三张房卡,添加微信【55051770】,进入游戏中心或相关小程序,搜索“微信拼三张房...
头条推荐!牛牛房卡怎么购买炫酷... 今 日消息,炫酷众娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
正版授权“如何购买金花房卡普及... 大厅金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
科普!微信金花房卡购买方式,如... 微信游戏中心:拼三张房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信拼三张房...
终于发现!微信牛牛房卡怎样开,... 微信游戏中心:牛牛房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
正版授权!金花房卡代理零售新荣... 正版授权!金花房卡代理零售新荣耀/飞鹰互娱/微信链接房卡充值链接新荣耀/飞鹰互娱是一款非常受欢迎的游...
我来教你/如何购买金花房卡鲨鱼... 微信游戏中心:鲨鱼众娱房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
科普!微信炸金花房卡链接在哪弄... 微信游戏中心:炸金花房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信炸金花房卡...
分享!微信群拼三张房卡到哪里买... 拼三张是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:33699510许多玩家在游戏中会购买房卡来享...