APP的稳定性测试,在安卓端可以使用monkey工具进行测试
一、环境配置
1、首选配置好本地的SDK环境,保证使用adb devices可以查看到连接的设备
如下图所示:
二、测试执行准备
在Monkey测试前,必须进行以下准备:
- 手机锁屏时间设置成永久或者大于30分钟,防止运行过程中锁屏
三、查看包名
adb shell pm list package -f 使用这个命令可以查看所有的包名
adb logcat | findstr START 输入该命令,然后点击要启动的app,即可获取到包名和activity
四、常用命令和参数
adb shell monkey -p com.sobey.cloud.view.jiangxi -v 500
随机发送500个伪随机事件 下面是常用的事件参数:
- 触摸事件百分比,即参数–pct-touch
- 滑动事件百分比,即参数–pct-motion
- 缩放事件百分比,即参数–pct-pinchzoom
- 轨迹球事件百分比,即参数–pct-trackball
- 屏幕旋转事件百分比,即参数–pct-rotation
- 基本导航事件百分比,即参数–pct-nav
- 主要导航事件百分比,即参数–pct-majornav
- 系统事件百分比,即参数–pct-syskeys
- Activity启动事件百分比,即参数–pct-appswitch
- 键盘翻转事件百分比,即参数–pct-flip
- 其他事件百分比,即参数–pct-anyevent
五、指定seed值,可以保证两次的操作一致
两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的。
六、输出日志到指定目录,文件目录不存在会自动创建
adb shell monkey -p com.cctv.yctv -v 100 > F:\monkeylog.cat
七、事件之间随机插入时间
在事件之间插入随机延迟,随机延迟范围为0到throttle设置的时间,单位为毫秒
adb shell monkey -p 包名 --throttle 5000 --randomize-throttle 100
命令说明:执行一百次monkey随机事件,每次事件的间隔在0-5000毫秒之间不固定
八、结果分析
-
注意查找日志中的无响应问题和崩溃问题。无响应问题可以在日志中搜索 “ANR” ,崩溃问题搜索 “CRASH” ,内存泄露问题搜索"GC"(需进一步分析),异常问题搜索 “Exception”(如果出现空指针, NullPointerException,需格外重视)。
-
为了进一步分析问题的来源,可以找到Log中出现问题处的前一次Switch,随后根据Log主要是查看相关的Activity。
例如下面的Log执行的就是MainActivity。 :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.airbnb.lottie/.samples.MainActivity;end
九、停止monkey的方法
注意 Monkey启动后会不断地向被测对象发送随机事件流,直到事件执行完毕或者发生异常时才停止。在Monkey运行过程中,即便断开 与PC的连接,Monkey依然可以在手机上继续运行。 停止Monkey的方法是:直接杀掉手机上的Monkey进程。具体方法如下:
adb shell ps |grep monkey 获取到对应包名的进程ID(比如获取到的是30898) adb shell kill pid adb shell kill 30898 通过kill命令杀死对应的Monkey进程。
以上就是这边了解到一些monkey的操作,欢迎大家分享交流。有任何问题欢迎指出。