返回
|搜索
转发

这就是monkey测试!

2021-01-22 14:33

在软件测试过程中,我们最能想到的就是按照功能常规流程操作步骤执行,但有很多问题是藏匿在长时间非常规测试操作中。介绍下这种类型测试的monkey测试。

1.什么是monkey测试?

Monkey直译为‘猴子’,猴子和测试人员本质区别就是猴子不知道业务逻辑,猴子可以理解为完全不懂业务知识也没有测试相关经验的的人员,在对于同样一个项目而言,monkey测试就是对项目各种无目的事件操作。

2.Monkey测试原理

monkey向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测试

3.Monkey运行原理

monkey测试需要借助monkey工具,monkey工具是Android自带的一个工具,使用java语言编写的,jar包路径:/system/framework/monkey.jar

图片

如果要启动monkey.jar则需要运行android中的名为“monkey”的Shell脚本,shell脚本存放路径:/system/bin/monkey

图片

Monkey的shell脚本需要通过adb命令来执行,即通过cmd窗口中,adb shell monkey +命令参数 来进行monkey测试

4.monkey测试参数说明

图片

a.基础参数

1.-p:指定要测试的包名

说明:如何查看应用的包名?

手机上打开目标应用:

DOS框中输入:adb shell dumpsys window|findstr mCurrentFocus

图片

2.-v :指定输出日志的级别,monkey输出日志有3个级别,通过-v参数来指定:

-v一级别 仅提供启动提示、测试完成和最终结果等少量信息

例:adb shell monkey -p com.tal.kaoyan -v 100

–v –v二级别提供较为详细的日志,包括每个发送到Activity的事件信息

例:adb shell monkey -p com.tal.kaoyan -v -v 100

–v –v –v三级别提供最详细的日志

例:adb shell monkey -p com.tal.kaoyan -v -v -v 100

3.-s:用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的

注:seed值为monkey日志中的信息

图片

4.--throttle <毫秒>事件之间插入固定延迟

b.事件类型参数

Monkey的事件类型总共有11种:

0:点击事件,即参数--pct-touch

1:滑动事件,即参数--pct-motion

2:缩放事件,即参数--pct-pinchzoom

3:轨迹球事件,即参数--pct-trackball

4:屏幕旋转事件,即参数--pct-rotation

5:基本导航事件,即参数--pct-nav

6:主要导航事件,即参数--pct-majornav

7:系统按键事件,即参数--pct-syskeys

8:Activity启动事件,即参数--pct-appswitch

9:键盘唤出隐藏事件,即参数--pct-flip

10:其他事件,即参数--pct-anyevent

下图是执行monkey测试日志中显示发送每类事件的默认比例,可设定某个事件类型的占比

图片2

c.调试参数

Monkey测试过程中需要长时间的对应用发送事件测试,很可能测试时间不久就因为碰到问题而崩溃,此时测试停止,而达不到我们长期测试的目的,我们需要通过调试参数来让测试继续执行就通过调试参数告诉monkey在遇到问题的时候该怎么处理

(1)--ignore-crashes:用于指定当应用程序崩溃时Monkey依然运行

(2)--ignore-timeouts:应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey依然运行

(3)--ignore-security-exceptions   指定应用程序发生许可错误时(如证书许可,网络许可等),monkey依然运行

5.Monkey测试命令

adb shell monkey –p com.tal.kaoyan  --throttle 100  -s 1606780631055 --pct-touch 70 --ignore-crashes --ignore-timeouts --ignore-security-exception  -v –v –v 864000(发送事件的次数) > d:emp\monkey.log

注:

(1)monkey的参数没有顺序要求,但是随机事件数是一定要放在后的

(1)想要monkey运行24小时,每100毫秒发送一个事件,则需要发送的时间次数为:24*60*60*1000/100=864000(次)

6.Monkey测试能发现的问题:

monkey日志文件中搜索关键字:

(1)程序无响应,ANR问题:在日志中搜索“ANR” application not responding

(2)崩溃问题:在日志中搜索“CRASH”

(3)其他问题:在日志中搜索”Exception”

首页1
我的
电话
在线666咨询
正规学校正规学校助学补贴助学补贴优质服务优质服务
logo