Monkey是一个命令行工具,可以运行在模拟器里或实际设备中,使用安卓调试桥(adb)来运行它,向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试,可以根据获取的log信息进行修复。
知识详解
1、Android-sdk中的adb命令即可,cmd运行adb提示没有该命令时记得配置环境变量
四大类——常用选项 、 事件选项 、 约束选项 、 调试选项
一、常用选项
--help:打印帮助信息
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。
1、基础命令
Adb devices 查看设备连接状态
adb shell monkey 100 #自动随机运行
Monkey随机启动APP并发送100个随机事件
2、adb shell monkey -v 100 #显示反馈信息
-v 作用:命令行上的每一个-v都将增加反馈信息的详细级别。
Level0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。
例:
adb shell monkey -v 10
adb shell monkey -v -v 10
adb shell monkey -v -v -v 10
monkey
一、约束选项
1、指定应用中随机压力测试
查看包名:adb shell pm list packages
命令:Adb shell monkey -p 包名 -v 100
可以一次指定多个应用的adb shell monkey -p 包名 -p 包名 -v 100
一、事件选项
1、减缓Monkey的运行速度
一般设置为300毫秒,原因是实际用户操作的最快300毫秒左右一个动作事件,所以此处一般设置为300毫秒。
adb shell monkey (-p xxx)–throttle 300 -v 10
(1)--pct-touch<percent> #对应事件ID:0
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)。
(2)--pct-motion <percent>#对应事件ID:1
调整motion事件百分比。(motion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up事件组成)
(3)--pct-trackball<percent> #对应事件ID:3
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)。
monkey
(4)--pct-nav<percent> #对应事件ID:5
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)。
(5)--pct-majornav<percent>#对应事件ID:6
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作
(6)--pct-syskeys<percent>#对应事件ID:7
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)。
(7)--pct-appswitch<percent>#对应事件ID:8
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
(8)--pct-anyevent<percent>#对应事件ID:10
调整其它类型事件的百分比。它包罗了所有其它类型的事件
一、调试选项
--dbg-no-events:初始化启动的activity,但是不产生任何事件。
--hprof:指定该项后在事件序列发送前后会立即生成分析报告 —— 一般建议指定该项。
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略超时
--ignore-security-exceptions:忽略安全异常
--kill-process-after-error:发生错误后直接杀掉进程
--monitor-native-crashes:跟踪本地方法的崩溃问题
--wait-dbg:知道连接了调试器才执行monkey测试。
monkey.png