Monkey adb命令使用详解

发布时间 2023-10-10 19:14:52作者: 勾影变形计

Monkey

通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,Monkey 主要用于Android 的压力测试  自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash

缺点:不支持条件判断,也不支持读取待测界面的信息来执行验证操作

Monkey参数

 

 

参数说明:

基础参数:

1.-p

指定待测包,monkey将只允许系统启动指定APP,若不指定包,monkey将允许系统启动设备中的所有APP

指定一个包:adb shell monkey -p 包名 100

指定多个包:adb shell monkey -p 包1 -p 包2 100

2.-v

指定反馈信息级别,-v(少量信息), -v -v(较详细信息), -v -v -v(最详细信息)

3.-s 

用于指定伪随机数生成器的seed值,如果seed值相同,则两次monkey测试产生的时间序列也相同

4.--throttle 

用于指定事件的时延,单位毫秒,若不指定,monkey会尽可能快的生成和发送消息

例子:adb shell monkey -p 包名 -s 123456 -v -v -v --throttle 200 1000 > monkey_log.txt

发送事件类型(值类型为百分比):

1.--pct-touch:触摸事件

2.--pct-motion:动作事件

3.--pct-trackball:轨迹事件

4.--pct-nav:导航事件

5.--pct-syskeys:系统按键

6.--pct-anyevent:其他类型事件

调试选项:

常用:

  1. 程序崩溃后继续执行:--ignore-crashes
  2. 超时后继续执行:--ignore-timeouts
  3. 发生异常后继续执行:--ignore-security-exception

Monkey日志分析

正常情况:若monkey测试顺利执行,在log日志文件最后会打印执行次数和执行所花费事件(Monkey finished 代表测试执行完成)

异常情况:

1.ANR:程序未响应

2.Exception:异常

3.Crash:崩溃、闪退

Monkey使用aapt查看apk包名(在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool)

aapt dump badging C:\apk\xx.apk

运行后会有包名package和入口activity名称:

package: name=xx.xx.xx’
launchable-activity: name=’xx.xx.xx’