使用Monkey命令做简单的安卓APP稳定性测试

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是一个安卓调试器,简介阅读:

https://developer.android.google.cn/studio/command-line/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

https://blog.csdn.net/qq_41063141/article/details/84898289

找不到设备一般是因为手机没有开启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"字样,看程序是否报错

相关推荐
Dnelic-1 小时前
【单元测试】【Android】JUnit 4 和 JUnit 5 的差异记录
android·junit·单元测试·android studio·自学笔记
Eastsea.Chen3 小时前
MTK Android12 user版本MtkLogger
android·framework
长亭外的少年10 小时前
Kotlin 编译失败问题及解决方案:从守护进程到 Gradle 配置
android·开发语言·kotlin
建群新人小猿13 小时前
会员等级经验问题
android·开发语言·前端·javascript·php
1024小神14 小时前
tauri2.0版本开发苹果ios和安卓android应用,环境搭建和最后编译为apk
android·ios·tauri
兰琛14 小时前
20241121 android中树结构列表(使用recyclerView实现)
android·gitee
Y多了个想法15 小时前
RK3568 android11 适配敦泰触摸屏 FocalTech-ft5526
android·rk3568·触摸屏·tp·敦泰·focaltech·ft5526
NotesChapter16 小时前
Android吸顶效果,并有着ViewPager左右切换
android
_祝你今天愉快17 小时前
分析android :The binary version of its metadata is 1.8.0, expected version is 1.5.
android
暮志未晚Webgl17 小时前
109. UE5 GAS RPG 实现检查点的存档功能
android·java·ue5