App移动端测试【8】Monkey命令操作

Monkey命令操作支持的形式多样,包括触摸事件、手势事件等。

1. Monkey操作

在cmd中键入如下(格式):

adb shell monkey  [options]  <event-count>

1.1 Monkey帮助

C:\Users\Leo>adb shell monkey -h
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]
              [--pct-nav PERCENT] [--pct-majornav PERCENT]
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]
              [--throttle MILLISEC] [--randomize-throttle]
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              COUNT

1.2 Monkey的日志级别

adb shell monkey -v  -v 200

如:

C:\Users\Leo>adb shell monkey -v  -v 200
  • -v:打印出日志信息,每个-v将增加反馈信息的级别。-v越多日志信息越详细,当下最多支持3个-v
adb shell monkey -v  -v   -v  <event-count>
  • 第1个-v:级别是0级,除了启动提示、测试完成、最终结果。提供较少信息
  • 第2个-v:级别是1级,提供教详细的测试信息。如逐个发送到activity的事件
  • 第3个-v:级别是2级,提供更详细的安装信息,如测试中被选中或未被选中的activity。

2. Monkey命令操作(事件类)

2.1 伪随机数生成种子值

前面类似的

C:\Users\Leo>adb shell monkey 200 
随机的(这次200下点击的某个应用,再次回放的时候,则点击其他应用)

使用-s命令,可以重复执行之前的伪随机事件。

C:\Users\Leo>adb shell monkey -s 9999 200   

9999是种子随机值
运行上面的命令2次,去观察结果。发现操作的事件类似
应用场景:回放脚本,bug的复现

2.2 设置间隔

如果你希望每个指令间有个停顿(固定时间),可以使用参数[–throttle],注意前面是[–]。毫秒。

adb shell monkey --throttle <milliseconds>

如:

C:\Users\Leo>adb shell monkey --throttle 2000 5   
2000是毫秒,5代表5次

[--throttle]后面接时间,单位是毫秒级。

2.3. 触摸事件的百分比

C:\Users\Leo>adb shell monkey -v 100
:Monkey: seed=1554609293603 count=100
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 2.0%
//   3: 15.0%
//   4: -0.0%
//   5: 25.0%
//   6: 15.0%
//   7: 2.0%
//   8: 2.0%
//   9: 1.0%
//   10: 13.0%
C:\Users\Leo>adb shell monkey -v 200
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
//   0: 15.0%
//   1: 10.0%
//   2: 2.0%
//   3: 15.0%

会看到

C:\Users\Leo>adb shell monkey -v 200

C:\Users\Leo>adb shell monkey -v 100

之间的event percentages是相同的
1.jpg

  • 0代表的是触摸事件
  • 1代表的手势事件。
    如果测试新闻类的app,则滑动比较多;而如果测试地图类,则缩放较多些。
    如果你希望调整触摸事件的百分比,记住使用–pct-touch。
$ adb shell monkey --pct-touch

如下图,80== 80%
2.jpg

3. Monkey命令操作(事件类2)

3.1 调整手势事件百分比

参数:--pct-motion
格式:adb shell monkey --pct-motion <percent>
如:adb shell monkey  –v  --pct-motion 40 200

3.jpg

3.2. 调整应用程序启动时间的百分比

打开手机应用的百分比。

--pct-appswitch
格式:adb shell monkey --pct-appswitch  <percent>
如:adb shell monkey  –v  --pct-appswitch  40 200

4.jpg

3.3. 调整屏幕旋转事件的百分比

先观察 adb shell monkey 200 ,看屏幕的横屏与竖屏之间的变化

参数:--pct-rotation
格式:adb shell monkey --pct-rotation  <percent>
如:adb shell monkey  –v  --pct-rotation  40 200

4.jpg

3.4. 补充:

执行指定的脚本(脚本放在外部的一个文件中)

如:
adb shell  monkey –f /mnt/sdcard/demo

3.5. 其他事件

C:\Users\Leo>adb shell monkey -h
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]
              [--ignore-crashes] [--ignore-timeouts]
              [--ignore-security-exceptions]
              [--monitor-native-crashes] [--ignore-native-crashes]
              [--kill-process-after-error] [--hprof]
              [--pct-touch PERCENT] [--pct-motion PERCENT]         触摸事件百分比   *
              [--pct-trackball PERCENT] [--pct-syskeys PERCENT]      轨迹球事件百分比
              [--pct-nav PERCENT] [--pct-majornav PERCENT]         基本导航事件百分比
              [--pct-appswitch PERCENT] [--pct-flip PERCENT]          应用程序启动事件百分比 *
--pct-rotation                                           调整屏幕旋转百分比  *
--pct-motion											调整手势百分比 *
              [--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT]    其他类型事件百分比
              [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE]               
              [--pkg-whitelist-file PACKAGE_WHITELIST_FILE]
              [--wait-dbg] [--dbg-no-events]
              [--setup scriptfile] [-f scriptfile [-f scriptfile] ...]
              [--port port]
              [-s SEED] [-v [-v] ...]                           随机运行 种子值
              [--throttle MILLISEC] [--randomize-throttle]     指定事件之间的间隔时间
              [--profile-wait MILLISEC]
              [--device-sleep-time MILLISEC]
              [--randomize-script]
              [--script-log]
              [--bugreport]
              [--periodic-bugreport]
              COUNT

测试精讲视频

如果你觉的文章读的不过瘾,可以查看详细的视频教程。

《移动测试必备技能》
UI自动化测试:Selenium3自动化测试
【测试全系列视频课程】

学习路线如下

微信图片_20210816100905.png微信图片_202108161009051.png微信图片_202108161009052.png
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Leo_Eagle

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

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

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

打赏作者

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

抵扣说明:

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

余额充值