Monkey是Android SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试。主要是为了测试app是否存在无响应和崩溃的情况。
Monkey 是SDK中附带的一个工具,所有的事件都是随机产生的,不带任何人的主观性。Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。
Monkey是一个命令行工具,使用安卓调试桥(adb)来运行它,模拟用户触摸屏幕、滑动Trackball、按键等随机事件流来对设备上的程序进行压力测试,检测程序多久的时间会发生异常,可以根据获取的log信息进行修复。
一、使用Monkey命令,需要安装ADB环境
(Monkey测试使用的是ADB命令,因此只需要配置ADB环境即可。)
ADB是一个安卓调试器,简介阅读:
1、下载ADB的官网地址:
https://developer.android.google.cn/studio/releases/platform-tools
找到SDK Platform Tools下载,根据自己当前使用系统下载适合的版本,windows系统则下载windows版本的工具
2、配置ADB环境,只需要配置系统变量即可
操作步骤:文件夹框内-》此电脑右键-》属性-》高级系统设置-》高级选项卡中 点击"环境变量",只需要配置系统环境变量即可,找到 path 点击"编辑",新增一个环境变量,将解压后的ADB路径复制进去保存即可。
3、配置好了ADB的环境变量,打开cmd窗口,执行adb命令,如果出现ADB版本信息,则说明安装ADB成功
**二、安装ADB后,想要对安卓APP做压力/稳定性测试,**手机需要开启 开发者模式和USB调试模式,根据不同机型开启 开发者模式和USB调试模式的方法不一样。
1、下图以华为手机为例,开启开发者模式和USB调试模式
- 开发者选项打开;
打开的方法:设置---关于手机---连续点击"版本号",即可以打开 ;
- "选择USB配置"选项为"仅充电"模式,
这个选项在开发者选项中;向下拉就能找到。
- "USB调试打开;
这个选项也是在开发者选项中。
**2、手机开启好开发者模式和USB调试后,**在cmd中运行adb devices
出现设备信息,则说明连接手机设备成功
在连接手机设备可能会出现:devices not found(找不到设备)和cannot bind 'tcp:5037'(5037端口被占用的问题)
可以参考以下文章解决:
https://jingyan.baidu.com/article/e75aca857b8560142edac6a0.html
找不到设备一般是因为手机没有开启USB调试模式,所以要做好第二步骤的操作。
三、使用Monkey命令做简单的APP稳定性测试
1、调试之前要找到想要调试的包名,即想调试的APP的报名
查看此设备中所有的包
例如:想找到"科研之友APP"的包名
bash
adb shell pm list packages |findstr "scholarmate"
2、对这个APP(包)进行1000次无规律点击操作,正常点击100-500次
格式:adb shell monkey -p 包名 -v 点击次数
bash
adb shell monkey -p com.smate.scholarmate -v 1000
运行后,窗口会打印日志(执行结果)
3、还可以将日志保存到电脑的某个位置,方便查看
以下例子将日志打印到E盘
bash
adb shell monkey -pcom.smate.scholarmate -v 1000 >E:/test.txt
执行命令后,E盘会生成一个记录日志的txt文件
4、分析日志: 日志主要查找"ANR"、"Exception"、"Caused by"字样,看程序是否报错