首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android开发笔记(六)

Monkey 简介

Monkey 是 Android 系统自带的自动化测试工具,使用 Java 语言写成。在 Android 文件系统中的存放路径是:/system/framework/monkey.jar,就像是一只猴子在电脑前乱敲,可以模拟用户按键、触摸滑动屏幕等操作对程序进行压力测试。

Monkey 架构

环境搭建

建议下载最新版的 Android Studio,同时下载 SDK,ADB 在 SDK 对应目录 platform-tools 文件夹下,比如我的 ADB 路径是 D:\android\platform-tools。可以在 CMD 命令行中进入到 platform-tools 文件夹下进行操作,不过这样很麻烦,建议配置 ADB 环境变量。下面简单说明下环境变量的配置步骤,以 win10 操作系统为例。

点击确定之后,双击系统变量中的 Path,点击新建,输入%ADB%,点击确定保存修改即可。

现在打开 CMD,输入 adb,如果出现如下图提示就说明 ADB 环境变量配置好了。

Monkey 参数

通过 adb shell monkey -help 可以列出测试命令

COUNT

设置测试的执行次数

[-p ALLOWED_PACKAGE]

用来指定被测试的应用,后面是对应程序的包名,有多个包名用空格分开,如果不指定包名,Monkey 将测试系统中的全部应用

[-c MAIN_CATEGORY [-c MAIN_CATEGORY]...]

指定一个或多个有效的 category,Activity 中必须至少包含一个指定的 category 才能被启动,否则启动不了

[--ignore-crashes]

忽略崩溃

[--ignore-timeouts]

忽略超时,比如 ANR

[--ignore-security-exceptions]

忽略安全异常

[--monitor-native-crashes]

观察和记录 Android 系统底层崩溃

[--ignore-native-crashes]

忽略 Monkey 本身异常

[--kill-process-after-error]

发生异常后结束进程

[--hprof]

会在 Monkey 事件序列之前和之后立即生成分析报告,同时会在 data/misc 产生大量文件,建议谨慎使用

设置事件百分比,所有百分比加起来不能超过 100%

[--pct-touch PERCENT]

0 触摸事件百分比

[--pct-motion PERCENT]

1 滑动事件百分比

[--pct-pinchzoom PERCENT]

2 缩放事件百分比

[--pct-trackball PERCENT]

3 轨迹球时间百分比

[--pct-rotation PERCENT]

4 屏幕旋转事件百分比

[--pct-nav PERCENT]

5 基本导航事件百分比

[--pct-majornav PERCENT]

6 主要导航事件百分比

[--pct-syskeys PERCENT]

7 系统事件百分比

[--pct-appswitch PERCENT]

8 Activity 启动事件百分比

[--pct-flip PERCENT]

9 键盘翻转事件百分比

[--pct-anyevent PERCENT]

10 其他事件百分比

[--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]

黑名单列表,不测试的应用

[--pkg-whitelist-file PACKAGE_WHITELIST_FILE]

白名单列表,只测试这些应用

注意,不能同时设置黑名单和白名单

[--wait-dbg]

停止执行中的 Monkey 测试,直到有调试器连接才会执行 Monkey 命令

[--dbg-no-events]

初始化启动的 Activity,但是不产生任何事件

[-s SEED]

伪随机数生成器的种子值,如果种子数值相同,则会生成相同的事件序列,对 bug 复现有帮助。如果不指定种子值,系统会随机生成一个种子值,在出现 bug 的时候该种子值会和 bug 信息一起输出,方便调试时复现 bug

[-v [-v]...]

反馈日志的信息级别,一共三个级别,默认是一个 v 最低级别,级别越高日志越详细。

-vLevel 0 (默认) 提供了很少的信息,比如启动通知,测试完成和最终结果

-v -vLevel 1 提供了更详细的测试运行信息,比如个别事件被发送到 Activity

-v -v -vLevel 2 提供了更详细的设置等信息,比如 Activity 选中或未选中的测试信息

[--throttle MILLISEC]

每次随机事件的时间间隔,单位:毫秒。如果不指定,系统会尽快的发送事件序列

[--throttle MILLISEC][--randomize-throttle]

设置随机事件的时间间隔区间

日志分析

通过上面这条命令测试一下,对获得的测试日志进行简单分析

种子值和随机事件次数

分配事件百分比,事件号详见之前的参数

触摸事件

滑动事件

缩放事件

轨迹球事件

日志最后部分

当然也可以在 log 中查看到 crash、Fatal、ANR 等异常情况,我演示的次数较少,而且没有指定某个应用,log 中没有上述情况。

杀死 Monkey 进程

如果想中断运行中的monkey 在 cmd 中 ctrl + c

adb shell ps | grep monkey 返回进程号

adb shell kill [ 刚才查到的进程号 ]

之前测试的时候遇到过上面方法不起作用的情况,这个时候请祭出重启大法,直接 adb reboot 重启手机终止 Monkey 测试。

忠于 Coding,忠于扯淡。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180422G0USFF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券