使用monkey进行Android APP压力稳定测试入门
使用monkey进行Android APP压力稳定测试入门
1. monkey介绍
Monkey:Android SDK自带的一个命令行工具,使用adb来运行它,向系统发送伪随机的用户事件流,如按键、触屏、输入等;实现对正在开发的应用程序进行压力测试,伴随着日志输出。模拟用户触摸屏幕、滑动trackball、按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常;
2. 什么时候使用monkey?
一般在产品稳定,无特别多bug时,可以用来测试应用的稳定性、健壮性(是否会发生闪退、崩溃),手机出厂前的整机测试。
3. monkey命令格式
adb shell monkey -help
----monkey帮助手册
-
- v 用于指定反馈信息级别(信息级别就是日志的详细程度),总共分为三个级别
- v ;(优先级最低)
-v-v;
-v-v-v;
v的个数越多日志级别越高,日志内容越详细
如:使用命令将日志输出到G盘下的Nox–>monkey–>monkey2.txt文件
adb shell monkey -v 300 >G:\Nox\monkey\monkey2.txt
monkey2.txt内容(部分) -
-p 后面加对应的包名,如果是征集测试,则不需要加包名。此外也可以测试多个应用程序,在后面加上多个-p即可,如
adb shell monkey -v -v -v -p (com.………包名1) -p(包名2) 500
获得当前正在运行的应用程序的包名
adb shell dumpsys activity | find "mFocusedActivity"
获得包名后就可以对我们想要测试的应用程序进行指定测试,而前面的是整机测试,对模拟器上的应用程序随意测试
再用命令对指定的应用程序进行测试
adb shell monkey -v -v -v -p (com.………包名) 500 -
-s 用于指定伪随机生成器的seed值,若seed相同,则两次monkey测试所产生的时间序列也相同,用于问题复现。(也就是说,重复执行刚才的随机操作)一般用在问题复现处
命令行包含-s时对app进行测试,会对APP进行音量加减的操作,如下图 -
- -throttle (毫秒1000=1s)后面接时间,单位为ms,表示事件之间的固定延迟(即执行每一个指令间隔的时间),如果不接该项,monkey将不会延迟
adb shell monkey --throttle 1000
(注意是两个横杠-) -
- -ignore-crashes 设置此项后,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。如果不设置此项,monkey遇到上述崩溃或异常将停止运行。
adb shell monkey --ignore-crashes 500
(注意是两个横杠-) -
- -ignore-timeouts 设置此项后,当应用程序发生任何超时错误(如ANR,即Application Not Responding)时,monkey将继续运行直到计数完成。若不设置此项,monkey
adb shell monkey --ignore-timeouts <event-count/500>
(注意是两个横杠-)
更多关于monkey的命令可以看一下这篇博客或是自行在网上学习
https://www.cnblogs.com/chengchengla1990/p/5641086.html