1.1 monkey 是做什么的
monkey 是 Android 中的一个命令行工具,由 java 编写,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对 APP 进行压力测试。
monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
1.2 monkey 的优劣
优势
脱离 Case 的依赖
可封装自动化执行
可封装后作为客户端性能测试的驱动
缺陷
完全随机,不可控
1.3 monkey 命令
adb shell monkey -p 包名 1 -p 包名 2 … 事件数
-p
如果用此参数指定了一个或几个包,monkey 将只允许系统启动这些包里的 Activity。
如果你的应用程序还需要访问其它包里的 Activity,那些包也需要在此同时指定。
如果不指定任何包,monkey 将允许系统启动全部包里的 Activity。
要指定多个包,需要使用多个 -p 选项,每个-p 选项只能用于一个包。
实例:
指定一个包:adb shell monkey -p 包名 10
指定多个包:adb shell monkey -p 包名1 –p 包名2 -p 包名3 100
-v
指定打印信息的详细级别,一个 -v 增加一个级别。
日志级别 Level 0,缺省值,仅提供启动提示、测试完成和最终结果等少量信息,-v;
日志级别 Level 1,提供较为详细的日志,包括每个发送到 Activity 的事件信息,-v -v;
adb shell monkey -p 包名 –v -v 100
日志级别 Level 2,最详细的日志,包括了测试中选中/未选中的 Activity信息,-v -v -v。
adb shell monkey -p 包名 –v -v –v 100
1.4monkey参数
Monkey包括许多选项,大致分为四大类:
1.5 monkey 结果分析
adb shell monkey -p –v -v –v > log.txt可以将结果存储起来
正常情况,如果 monkey 测试顺利执行完成,在 log 最后,会打印出当前执行事件的次数和所花费的时间
Monkey finished
Monkey finished:这个字段表明本次的 Monkey 没有异常,测试通过。
打开 LOG,查看 log 的最下端,是否有类似以下字段:
Network stats: elapsed time=5123ms (5123ms mobile, 0ms wifi, 0ms notconnected)(没联网)
CRASH
如果搜索到有结果,则表明有进程出现问题,测试不通过。
CRASH: com.onekchi.downloadmanager (pid 12919)
ANR
如果有搜索结果,则表示测试过程中,测试对象出现了无响应的现象,因此测试不通过。