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:其他类型事件
调试选项:
常用:
- 程序崩溃后继续执行:--ignore-crashes
- 超时后继续执行:--ignore-timeouts
- 发生异常后继续执行:--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’