monkey测试简介

猪小花1号2018-08-31 09:14

作者:李婷婷


背景:

Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),可以通过自动化高效地弥补app稳定性对测试人力和测试时间的要求。Monkey顾名思义,就像一只猴子,在电脑面前,乱敲键盘在测试,猴子什么都不懂,只知道乱敲,这样可以通过随机的方式进行测试。适用于低概率很难复现的异常和压力测试。

 

关于安装虚拟机的步骤我在这里不做详细说明了(Monkey测试使用的是adb命令,因此只需要配置adb环境即可);也可用真机通过USB连接电脑,连网方式可通过在安卓机上安装wifi adb应用实现。连上设备后在cmd终端中输入adb devices 查看设备连接情况。

 

Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar。

Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/monkey;这样就可以通过在shell窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试了。

 

虚拟机或者真机连接好后,直接在cmd中输入相关命令就可以进行monkey测试了,下面简单介绍下基本的命令和参数:

adb shell monkey -p 包名 –-throttle 毫秒数 --ignore-crashes --ignore-timeouts -s 9 -v -v -v 点击数 >电脑某一位置  

<注>1.直接查看手机中存在的apk包,进入adb shell 命令后,手机的data/data文件夹ls查看所有包名,找到要测apk的包名(如果 是整机测试,就不需要包名)。

2.--throttle毫秒数:是指每两次执行之间的时间距离,可以防止由于实行过快软件还没来得及反应。

3. --ignore-crashes --ignore-timeouts 这里是在monkey测试的过程中遇到carash或者timeout的情况时忽略掉,一般不设    置时,出现carash或者timeout时,Monkey测试会终止,这里是防止Monkey测试终止。

 类似的参数:

--pct-trackball <percent> 调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,有时会伴随着点击事件)如不规则滑动解锁;

--ignore-security-exceptions  忽略权限问题的;

--kill-process-after-error 当错误发生时杀进程;

--monitor-native-crashes 监视崩溃时的本地代码。

4. -s <seed>  伪随机数生成器的 seed 值,这里的9就是Seed值(影响随机事件的发生顺序),如果用相同的seed 值再次运行Monkey ,它将生成相同的事件序列。

5.点击数一般设置30000-100000次。

 

结束后,日志最后一行会打印Monkey finished代表执行完成。


网易云大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者李婷婷授权发布。