monkey使用

 使用monkey工具进行稳定性测试、压力测试

monkey android 自带系统自带的程序,可以生成伪随机用户事件来模拟单击、双击、输入、滑动、
拖动、触摸、手势等操作,可以对正在开发中的程序进行随机压力测试和稳定性测试。

1.1伪随机事件类型

伪随机事件类型一共有 11 种,具体如下:
触摸(
Touch )、手势 (motion) 、二指缩放( pinchzoom )、轨迹 (trackball) 、旋转 (rotation) 、基本导
(nav) 、主要导航事件 (majornav) 、系统按键 (syskeys) 、启动 activity appswitch )、键盘事件 (flflip)
和其它类型事件 (anyevent) ,在日志中分别用 0-10 来表示。测试可以通过 —pct- 事件类型 指定事件的
比例。
指定多个事件的百分比 adb shell monkey -p cn.mopon.fifilm --pct-touch 20 --pct-pinchzoom 30 --pct
motion 15 --pct-appswitch 30 1000
说明:指定多个事件百分比时,各百分比之和不能超过 100% 。如果指定了事件类型百分比,这些指定
事件百分比加起来等于 100 ,则只生成指定事件。如果加起来小于 100 ,假设加起来等于 80 ,则没有指
定的事件会随机生成,且各未指定事件百分比数加起来等于 20. 如果指定事件百分比加起来大于 100 ,则
执行报错。
事件说明:
触摸事件:指在屏幕某处按下并抬起的操作
手势事件:指在屏幕某处的按下、随机移动、抬起的操作(划动)
缩放事件:指在屏幕上某处放大缩小事件,如地图的测试,这类事件较多
轨迹事件:模拟的轨迹球的操作,早期手机较多,现在的手机几乎都没有轨迹球,但轨迹球事件中
包含曲线滑动操作,如果被测程序需要曲线滑动时可以选用此参数 屏幕旋转事件:屏幕旋转事件是一个隐藏事件,它是模拟屏幕的横屏和竖屏转换
基本导航事件:指点击方向输入设备的上、下、左、右按键的操作,现在手机多数没有上下左右的
操作,这类事件很少
主要导航事件:指点击 主要导航 按键的操作,这些按键通常会导致 UI 界面中的动作,如键盘回
退,菜单,中间键等,现在手机上多数没有这些键。
系统按键事件:指点击系统保留使用的按键的操作,如点击 Home 键、返回键、音量调节键等
启动 Activity 事件:指在手机上启动一个 Activity 的操作,即打开某个应用的某个 activity 界面
键盘事件:键盘事件主要是一些与键盘相关的操作,如点击输入框、键盘弹起、键盘收回等
其它类型事件:除以上事件以外的其它事件,比如按键、其他不常用的设备上的按钮等

1.2monkey命令介绍

monkey 命令格式: adb shell monkey [options] ;其中 options 值有很多选项,可以在 Monkey 官网
看,也可以输入命令 adb shell monkey -help 可以查看到其对应的所有值。 event-count 代表事件总
数,该参数必须写到命令的最后边,且不可以省略。
基础选项:
-p 用于约束限制,用此参数指定一个包,指定包后 Monkey 将被允许启动指定应用。
-v 指定日志的详细程度,分 Level1 Level2 Level3 -v 默认值,仅提供启动提示,操作结果等少量信
息 ,也就是 Level1 ,比如 adb shell monkey -p xxx.xxx.xxx -v 1 -v -v 提供比较详细信息,比如启动
的每个 activity 信息 ,也就是 Level2 ,比如 adb shell monkey -p xxx.xxx.xxx -v -v 1 -v -v -v 提供最详
细的信息 ,比如 adb shell monkey -p xxx.xxx.xxx -v -v -v 1
-s 伪随机数生成器的种子值,如果我们两次 monkey 测试事件使用相同的种子值,会产生相同的事件序
列;如果不指定种子值,系统会产生一个随机值。种子值对我们复现 bug 很重要。
--throttle 指定两次操作间的时延,单位为 ms
--pct 事件选项,一般格式为: --pct- 事件名称 事件百分比
调试选项:
由于 monkey 在测试 app 时,我们需要作长时间的稳定性测试,在测试过程中, app 很可能因为碰到
问题而崩溃,此时测试会停止,而达不到我们长期测试的目的,我们需要通过调试参数来让测试执行继
续,主要的几个参数如下
--ignore-crashes 指即使应用程序崩溃 (Force& Close 错误 ) Monkey 依然会发送事件,直到事件计数
达到指定的次数为止。
例: adb shell monkey -p cn.mopon.fifilm --ignore-crashes 100000
--ignore-timeouts app 在发生 ANR 错误(无响应), Monkey 依然会发送事件,直到事件计数完
成。
--ignore-security-exceptions APP 发生许可证书错误时, Monkey 依然继续发送事件,直到事件数
目达到目标值为止。

1.3monkey测试的项目步骤

以下是 app monkey 测试的详细步骤
1 )先进入 cmd 界面,输入 adb devices ,查看是否正常连接。
2 )输入 adb shell pm list package -3 ,查看 app 包名。
3 )输入 adb shell monkey -p +app 包名 -v 10000 >F:\monkey.log 4 )查看日志,分析问题。如果出现问题,可以重复运行 monkey 命令,但是要保证有相同的 seed 值。
如果问题复现,就让开发进一步定位问题原因。

1.4monkey日志分析

monkey 测试时出现问题,此时我们需要分析定位问题,我们需要分析 monkey 日志,主要查看日志
中的:
无响应问题:在日志中搜索 “ANR”
崩溃问题:在日志中搜索 “crash”
异常问题:在日志中搜索 “ Exception”
其他问题:在日志中搜搜 “ Error Null (空指针异常)
Monkey 测试出现错误后,重现问题步骤为以下几步:
(1) 找到是 monkey 里面的哪个地方出错
(2) 查看 Monkey 里面出错前的一些事件动作,并手动执行该动作
(3) 若以上步骤还不能找出,可以使用之前执行的 monkey 命令再执行一遍,注意 seed 值要一样

1.5 事件次数计算方法

假设我们需要测试 APP 持续运行 12 个小时,应该设置生成多少个事件呢?
1. 首先设置 1000 个事件执行一下 monkey 命令,查看日志,假设用时 100 秒。
2. 持续运行 12 小时,也就是 12*3600=43200
3. 接着 43200 除以 100 等于 432
4. 最后用 432 乘以 1000 等于 432000 ,则大致需要设置 432000 个事件
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀晨一生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值