当前位置 : 主页 > 网络安全 > 测试自动化 >

Monkey基本使用

来源:互联网 收集:自由互联 发布时间:2021-06-19
什么是 Monkey Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash. Monkey 特点 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子

什么是 Monkey

Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash.

Monkey 特点

顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲。通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。

Monkey程序介绍

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

Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;

Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。

Monkey 架构

Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

Monkey 参数大全

Monkey 命令基本参数介绍

1、允许启动手机里面所有的 App , 随机操作 1000 次

adb shell monkey 1000

2、-p : 允许启动 App 的包名

  • 启动一个包名的应用

QQ 的包名为: com.tencent.mobileqq

adb shell monkey -p com.tencent.mobileqq 1000

随机操作 手机 QQ 1000 次

  • 启动指定的多个 App

微信的包名为:com.tencent.mm

adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000

随机操作 手机 QQ 和 微信 1000 次

3、-v : 操作日志记录

命令行的每一个-v将增加反馈信息的级别。

  • -v:Level 0(缺省值)除 启动提示、测试完成和最终结果之外,提供较少信息。
  • -v -v :Level 1提供较为详细的测试信息,如逐个发送到Activity的 事件。
  • -v -v -v :Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

adb shell monkey -p com.tencent.mobileqq -v -v -v 100

4、-s : 伪随机数生成器的seed值

如果用相同的seed值再次运行monkey,将生成相同的事件序列。

adb shell monkey -s 12345 -v 10

5、--ignore-crashes : 忽略操作是崩溃异常

通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-crashes -v 1000

6、--ignore-timeouts : 忽略超时

通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-timeouts -v 1000

7、--ignore-security-exceptions : 忽略程序发生许可异常

通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

adb shell monkey --ignore-security-exceptions -v 1000

8、--throttle : 插入固定延迟

在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被执行。

adb shell monkey --throttle 500 -v 500

随机执行 500 个事件,每个事件之间延迟 500 毫秒被执行。

9、----pcdt-touch:修改点击的概率

  其他相应事件:

0:--pct-touch 调整touch事件的比例
1:--pct-motion 调整移动事件的比例
2:--pct-pinchzoom 二指缩放百分比,即智能机上的放大缩小手势操作
3:--pct-trackball 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
4:--pct-rotation 屏幕旋转百分比,横屏竖屏
5:--pct-nav ”基本”导航事件百分比(导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有
6:--pct-majornav ”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)
7:--pct-syskeys ”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
8:--pct-appswitch 启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
9:--pct-flip 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
10:--pct-anyevent其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。

 

  使用方法:

    adb shell monkey <事件> <百分比,例如60代表60%>

  例如:adb shell monkey --pcdt-touch 60

10、--help : 列出简单的用法

adb shell monkey -help

 

综合使用并生成日志:Adb shell monkey -s 12345 -p <包名> -v -v -v  --ignore-crashes --pcdt-touch 60  --ignore-timeouts --throttle 300 100 >d:\pakage_0303.txt

参考:

https://www.cnblogs.com/songzhenhua/p/9312810.html

https://www.cnblogs.com/zhaoyanjun/p/6861278.html

网友评论