Monkey是Android中的一个命令行工具,可以在Android模拟器或手机设备中运行。 Monkey通过向Android系统发送伪随机用户事件流(如屏幕的点击、滑动和系统按键操作等),实现对正在开发的Android App进行压力测试。 Monkey主要用于对所开发的Android App进行稳定性测试。 稳定性就是指程序平稳运行不出现比较严重的错误。Monkey模拟单用户长时间运行产生的压力,loadrunner模拟多用户短时间内产生的压力。
等产品稳定,没有特别多的bug的时候,一般用monkey去测试应用的稳定性、健壮性(是否发生闪退,崩溃),整机测试。一般手机闲着的时候就可以考虑跑monkey。
一、Monkey的优势
(1)如果限定了Monkey运行在特定package包上,当监测到试图转到其他包的操作,将对其进行阻止。
(2)如果应用程序崩溃或接收到任何失控异常,Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
(3)如果应用程序发生了程序无响应ANR(application not responding)的错误,Monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
(4)按照选定的不同级别的反馈信息,在Monkey中还可以看到其执行过程报告和生成的事件。
二、monkey操作步骤
(1)打开手机,在DOS窗口,adb连接手机(模拟器)
(2)方法一:在DOS窗口输入 adb shell monkey + 命令参数
adb shell monkey -p com.baidu.browser.apps_sj --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-touch 40 --pct-syskeys 30 --pct-trackball 30 -s 1 -v -v -v --throttle 500 30000 效果:对百度浏览器发送30000次随机事件,间隔时间500ms
(3)方法二:在DOS窗口输入adb shell 进入shell , 在shell中输入monkey + 命令参数
monkey -p com.ss.android.ugc.aweme --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-touch 40 --pct-syskeys 30 --pct-trackball 30 -s 1 -v -v -v --throttle 200 10000 2> /sdcard/error.txt 1> /sdcard/info.txt 效果:对抖音app随机点击10000次,每次间隔200ms,前提是手机/模拟器已安装抖音app
三、强制中止monkey
adb shell ps 查看全部在运行的进程,查找出com.android.commands.monkey进程PID,adb shell kill pid 杀掉monkey进程。
Tips:PID是进程ID,PPID是父进程ID
四、 monkey程序介绍
(1)Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;
(2)Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;
(3)在PC端DOS窗口编写monkey命令----> 手机中monkey.jar程序执行
(4)monkey命令由adb传给monkey的shell脚本,由shell脚本启动monkey.jar,最后由monkey.jar执行monkey命令
五、获取monkey帮助信息
命令:adb shell monkey –help
注意:count是必选参数,表示随机事件的计数