monkey官网:https://developer.android.com/studio/test/monkey
monkey是android系统自带的一款测试工具,可生成用户事件的伪随机流,例如点击,触摸或手势,以及许多系统级事件。可以使用Monkey以随机且可重复的方式对应用程序进行压力测试。
Monkey的基础语法:
adb shell monkey [options] <event-count>
参数说明:
--help 打印参数及用法
-v 级别0(默认值)显示启动通知、测试完成和最终结果信息。
级别1显示有关测试运行的更多详细信息,例如发送到活动页面的事件
级别2提供更详细的设置信息,例如选择或未选择用于测试的活动页面
-p <allowed-package-name> 指定运行的包名,要指定多个包,需要每个包都指定一个-p选项
活动
-s <seed> 种子值。使用相同的种子值运行Monkey,将生成相同的事件序列
--throttle <milliseconds> 指定事件之间的延迟
--pct-touch <percent> 设置触摸事件的占比
--pct-motion <percent> 设置手势的占比
--pct-trackball <percent> 设置轨迹事件的占比。轨迹事件由一个或多个随机动作组成。
--pct-nav <percent> 调整“基本”导航事件的占比
--pct-majornav <percent> 调整“主要”导航事件的占比
--pct-syskeys <percent> 设置“系统”键事件的占比。如Home,Back,Start Call,End Call
--pct-appswitch <percent> 设置活动启动页面的占比
--pct-anyevent <percent> 设置其他类型事件的占比,例如按键,其他较少使用的按钮等
调试
--hprof 在Monkey事件序列之前和之后立即生成分析报告。将在data/misc中生成大(~5Mb)文件
--ignore-crashes 发生崩溃或任何类型的未处理异常时,Monkey将继续向系统发送事件,直到计数完成
--ignore-timeouts 发生超时错误时,继续向系统发送事件
--ignore-security-exceptions 发生权限错误时。将继续向系统发送事件
--kill-process-after-error 发生错误时,停止的进行运行
--monitor-native-crashes 监测并报告崩溃。如果设置了--kill-process-after-error,系统将停止
使用示例:
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的运行,通过日志来看,运行顺序如下:
检查测试命令信息-》执行伪随机时间流-》如果有异常,输出异常信息-》打印测试结果信息