1、什么是monkey
Monkey 是Android SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试。主要是为了测试app是否存在无响应和崩溃的情况。
2、adb结合 monkey 的常用命令
adb shell monkey 100:对该设备下,随机应用,执行100次的随机操作。(伪随机)
adb shell monkey -p <包名> 100:指定应用(包)随机操作100次。这里演示的包名为:com.dfcyc.app.dffs
adb shell monkey -p <包名> -v -v -v 100 >D:\log.txt:指定应用随机操作100次并打印日志到指定路径/文件
-v:日志等级,一共3级
D:\log.txt:指定路径存放日志,文件名自定义。
adb shell monkey -s <seed值> -p <包名> -v -v -v 100 >D:\log.txt:根据seed值 指定应用随机操作100次并打印日志到指定路径/文件
seed值:输出log日志文件后,文件内查看。
adb shell monkey -p <包名> -v -v -v --throttle 1000 200 >D:\log.txt:指定应用随机操作200次,每1000毫秒点击一次,并打印日志到指定路径/文件。
–throttle:后面跟毫秒数
在命令执行过程中,按 Ctrl+C 可以退出,但不代表monkey停止 (包括运行monkey时拔掉数据线,仍然未停止),如果需要停止monkey可以杀死该进程 id,如下命令:
adb shell ps | findstr monkey:停止前先查看当前系统,monkey在跑的 进程id
adb shell kill <进程pid>:强制杀死在跑的monkey进程
3、monkey的日志分析
使用 Monkey 进行测试结束后,我们关注的是应用在测试中是否出现崩溃或无响应这类问题。测试结果可以通过如下方法判断:
3.1.正常:
monkey测试顺利执行完成,在log的最后,会打印当前执行时间的次数和所花费的时间。
Monkey finished代表执行完成
3.2.异常:日志内搜索异常关键字
a. 无响应-Anr问题:在日志中搜索“ANR”
b. 崩溃问题:在日志中搜索“CRASH”
c. 其他问题:在日志中搜索”Exception”
3.3.附:常见的日志错误
更多日志相关信息可自行百度
有实力的同学可以写个小工具,自动进行日志分析即可。
知识点:adb logcat的日志和monkey命令日志的区别
adb monkey日志:是记录monkey命令在手机APP操作的事件。
adb logcat日志:是记录手机系统在运行app时有什么异常的事件
4、monkey的日志查看
运行app500次,然后把日志保存在d:\123\mlog.txt文件下,并分析有没有问题