monkey官网https://developer.android.com/studio/test/monkey

    monkey是android系统自带的一款测试工具,可生成用户事件的伪随机流,例如点击,触摸或手势,以及许多系统级事件。可以使用Monkey以随机且可重复的方式对应用程序进行压力测试。

    Monkey的基础语法:

    1. adb shell monkey [options] <event-count>

    参数说明:

    1. --help 打印参数及用法
    2. -v 级别0(默认值)显示启动通知、测试完成和最终结果信息。
    3. 级别1显示有关测试运行的更多详细信息,例如发送到活动页面的事件
    4. 级别2提供更详细的设置信息,例如选择或未选择用于测试的活动页面
    5. -p <allowed-package-name> 指定运行的包名,要指定多个包,需要每个包都指定一个-p选项
    1. 活动
    2. -s <seed> 种子值。使用相同的种子值运行Monkey,将生成相同的事件序列
    3. --throttle <milliseconds> 指定事件之间的延迟
    4. --pct-touch <percent> 设置触摸事件的占比
    5. --pct-motion <percent> 设置手势的占比
    6. --pct-trackball <percent> 设置轨迹事件的占比。轨迹事件由一个或多个随机动作组成。
    7. --pct-nav <percent> 调整“基本”导航事件的占比
    8. --pct-majornav <percent> 调整“主要”导航事件的占比
    9. --pct-syskeys <percent> 设置“系统”键事件的占比。如HomeBackStart CallEnd Call
    10. --pct-appswitch <percent> 设置活动启动页面的占比
    11. --pct-anyevent <percent> 设置其他类型事件的占比,例如按键,其他较少使用的按钮等
    1. 调试
    2. --hprof Monkey事件序列之前和之后立即生成分析报告。将在data/misc中生成大(~5Mb)文件
    3. --ignore-crashes 发生崩溃或任何类型的未处理异常时,Monkey将继续向系统发送事件,直到计数完成
    4. --ignore-timeouts 发生超时错误时,继续向系统发送事件
    5. --ignore-security-exceptions 发生权限错误时。将继续向系统发送事件
    6. --kill-process-after-error 发生错误时,停止的进行运行
    7. --monitor-native-crashes 监测并报告崩溃。如果设置了--kill-process-after-error,系统将停止

    使用示例:

    1. adb shell monkey --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 15000 > /your/path/monkey_test.txt 2>/your/path/error.txt

    压力/健壮性测试,其主要是缩短 monkey 测试中事件与事件之间的延迟时间,验证在快速的事件响应的过程中,程序是否能正常运行。这种压力/健壮性测试主要是针对单一 apk 来执行;可以将 —throttle 的值设定为 500 或者更小,一般都使用 500 毫秒的延迟事件。在进行 apk 的集合测试时,对于高频率使用的 apk、长时间使用的 apk 都要包含在执行的应用程序中间

    monkey的运行,通过日志来看,运行顺序如下:

    检查测试命令信息-》执行伪随机时间流-》如果有异常,输出异常信息-》打印测试结果信息