Monkey测试

Money介绍

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

参考资料

http://blog.csdn.net/jlminghui/article/details/38238443

Monkey用来做什么

Monkey 主要用于Android的稳定性测试,自动的一个压力测试小工具, 主要目的就 是为了测试app 是否会Crash(崩溃).

Monkey程序介绍

(1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路 径是: /system/framework/monkey.jar;
(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在 Android文件系统中 的存放路径是:/system/bin/monkey;
(3)Monkey 命令启动方式: a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测 试b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测 试c ) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终 端模拟器

实际操作

adb shell monkey 100 执行monkey测试100次 针对rom测试
在这里插入图片描述
-p <允许的包名列表> adb shell monkey -p 包名 100
指定一个包名只操作那个软件
在这里插入图片描述
显示日志详细程度
adb shell monkey -p 包名 -v 30 // 缺省值,仅提供启动提示、测试完成和 最终结果等少量信息
在这里插入图片描述
adb shell monkey -p 包名 -v -v 30 // 提供较为详细 的日志,包括每个发送到Activity的事件信息
在这里插入图片描述
adb shell monkey -p 包名 -v -v -v 30 // 最详细的日志,包括 了测试中选中/未选中的Activity信息
在这里插入图片描述
将log信息写到文档中 adb shell monkey 100 >路径
正常情况, 如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次 数和所花费的时间; // Monkey finished 代表执行完成
在这里插入图片描述
在这里插入图片描述
用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也 相同的。 示例: monkey测试1:adb shell monkey –s 10 100 monkey测试2:adb shell monkey –s 10 100
在这里插入图片描述
用亍指定用户操作(即事件)间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可 能快的 生成和发送消息。
例:adb shell monkey -p com.example.login --throttle 300 100 表示执行100个伪随机用户事件流,事件间隔为300毫秒。 注:一般设置为300毫秒,原因是实际用户操作的最快300毫秒左右一个动作事件。
在这里插入图片描述
–pct-touch 触摸事件 调整触摸事件的百分比。
(触摸事件是指在屏幕中的一个down-up事件,即在屏幕某处按 下并抬起的操作) –pct-touch:触摸事件。即在某一位置的Down-Up(手指的放下和抬起)事件。 Down(ACTION_DOWN)和Up(ACTION_UP)的坐标临近,但并非相同。
在这里插入图片描述
–pct-motion 调整手势事件motion事件百分比。
(motion事件是由屏幕上某处一个down事件、一系 列伪随机的移动事件和一个up事件组成) –pct-motion:动作事件。以Down(ACTION_DOWN)开始,Up(ACTION_UP)结 尾,中间至少有一次Move(ACTION_MOVE)
在这里插入图片描述
Event percentages: 0:–pct-touch//touch events percentage触摸事件百分比(触摸事件是一个在屏幕单一位置的按下-抬起事件)
1:–pct-motion//motion events percentage手势事件百分比(手势事件是由一个在屏幕某处的按下事件、一系列的 伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯
2:–pct-pinchzoom//pinch zoom events percentage二指缩放百分比,即智能机上的放大缩小手势操作 3:–pct-trackball//trackball 即单纯的Move(ACTION_MOVE) events percentage轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有 点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
4:–pct-rotation//screen rotation events percentage屏幕旋转百分比,横屏竖屏
5:–pct-nav//nav 基本导航事件。即来自于方向输入设备的上下左右操作。 events percentage”基本”导航事件百分比(导航事件包括上下左右,如方向输入设备的 输入)老手机的上下左右键,智能机上没有
6:–pct-majornav//major 即Navigation Bar的确认,菜单,返回键等 nav events percentage”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例 如5-way pad的中间键、回退键、菜单键)
7:–pct-syskeys//system(key) operations percentage”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
8:–pct-appswitch//app switch events percentage启动activity事件百分比。在随机的间隔里,Monkey会执行一 个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
9:–pct-flip//keyboard flip percentage键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘 收回
10:–pct-anyevent//anyevents 该事件可能包含其他上述事件。 percentage其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设 备上的按钮等等。
参考:https://blog.csdn.net/u011436666/article/details/53998332
–ignore-crashes 作用:
通常,应用发生崩溃或异常时Monkey会停止运行。
如果设置此项,Monkey将继续 发送事件给系统,直到事件计数完成。 正常操作,不忽略异常
在这里插入图片描述
忽略异常
在这里插入图片描述
0 触摸事件的占比
1 手势事件占比
2 两指操作占比
3 动作事件(有一定轨迹)
4 屏幕旋转的占比
5 导航事件 上下左右
6 导航事件 home 回退 隐藏菜单
7 按键事件 关机键 音量加 减
8 启动activity事件
9 键盘抬起事件
10 其他事件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
测试准备: Monkey压力测试时除了添加测试APP,还可另外添加2-3个第三方app进行对比测试。 1.在D盘新建一个txt文件,添加APP包名,命名为whitelist.txt 2.用cmd命令把whitelist.txt文件push到手机 adb push d:\whitelist.txt /data/local/tmp/ 3.压力测试指令monkey -p 包名 [参数] -v (-v -v) 执行次数 >导出log文件 l 对白名单包进行测试 l monkey --pkg-whitelist-file /data/local/tmp/whitelist.txt --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 1> /mnt/sdcard/monkey_test.txt 2>&1 & 黑名单:不测试的应用 白名单:只测试这部分应用 注意:不能同时设置黑名单和白名单 设置黑名单: --pkg-blacklist-file PACKAGE_BLACKLIST_FILE 设置白名单: --pkg-whitelist-file PACKAGE_WHITELIST_FILE l 对单独的APP进行测试 l monkey-p com.hst.che --throttle 500 -s 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000 >/mnt/sdcard/monkey1.txt 说明: --throttle(毫秒)事件之间插入的固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定,Monkey将尽可能快的产生并执行事件。 -s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。 --ignore-crashes 忽略程序崩溃。设置此选项后,Monkey会执行完所有的事件,不会因crash而停止。 --ignore-timeouts 忽略程序无响应。设置此选项后,Monkey会执行完所有的事件,不会因ANR而停止。 --ignore-security-exceptions 忽略证书或认证异常。设置此选项后,Monkey会执行完所有的事件,不会因认证或证书异常而停止。 --ignore-native-crashes 监视系统中本地代码发生的崩溃 --monitor-native-crashes 忽略本地代码导致的崩溃。设置忽略后,Monkey将执行完所有的事件,不会因此停止。 -v -v –v 提供最详细的设置信息 4.导出log到电脑:pull /mnt/sdcard/monkey.txt d:monkey.txt 分析log l 日志开头:显示本次测试seed值,执行次数,测试包, l 日志结尾: 如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;Monkey finished代表执行完成。 (如果Monkey执行中断,在log的最后也能查看到当前已执行的次数。) l 日志内容分析 一般测试结果分析-搜索关键字: 1.程序无响应,ANR问题:在日志中搜索“ANR” 2.崩溃问题:在日志中搜索“CRASH” 3.其他问题:在日志中搜索”Exception” 详细分析monkey日志 Switch--查看log中的Switch,主要是查看Monkey执行的是那一个Activity,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。 Sleeping--Sleeping for 500 milliseconds这是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。 重现问题 Monkey测试出现错误后,一般的查错步骤为以下几步: 1.找到是monkey里面的哪个地方出错 2.查看Monkey里面出错前的一些事件动作,并手动执行该动作 3.若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值