monkey遍历命令详解

1、启动monkey

# 对手机点击1000次,不限制应用

adb shell monkey 1000

# 限制在设置的应用中,点击1000次

adb shell monkey -p com.cleanmaster.mguard 1000

# 设置点击事件的间隔为50ms

adb shell monkey -p com.cleanmaster.mguard 1000 --throttle 100

2、停止monkey

# 查看monkey的进程id

ps | grep monkey

# 根据pidnum来杀死进程

Kill pid

3、增加monkey执行健壮性

程序发生异常时,不终止测试

# 忽略崩溃

--ignore-crashes

# 忽略ANR

--ignore-timeouts

# 忽略证书或认证异常

--ignore-security-exceptions

# 忽略本地代码发生的崩溃

--ignore-native-crashes

4、log设置

# 设置输出log位置

adb shell monkey -p com.cleanmaster.mguard 2>/sdcard/monkey 1>/sdcard/monkey 1000

# 设置电脑输出log位置

adb shell monkey -p com.cleanmaster.mguard 2>/Users/lizhen/cmcm/workspace/monkey/errer.txt 1>/Users/lizhen/cmcm/workspace/monkey/info.txt 1000

# 使用-v指定log详细级别

# Monkey的日志输出有3个级别:默认的-v是level 0,-v -v日志级别为level 1,-v -v -v日志级别为level 2。日志的级别越高,其详细程度也越高。为了方便问题的定位,将日志级别设置为level2。

adb shell monkey -p com.cleanmaster.mguard -v -v 2>./errer_lev1.txt 1>./info_lev1.txt --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes 5000

 

5、设置monkey事件百分比

Monkey可以随机注入11种事件,Monkey通过这11大事件来模拟用户的常规操作

编号默认比例说明

0

15.0%

0:触摸事件百分比,即参数--pct-touch

调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)

1

10.0%

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

2

2.0%

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

3

15.0%

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

4

0.0%

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

5

25.0%

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

6

15.0%

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

7

2.0%

7:系统事件百分比,即参数--pct-syskeys

8

2.0%

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

9

1.0%

9:键盘翻转事件百分比,即参数--pct-flip

10

13.0%

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

# 比如

adb shell monkey -p com.cleanmaster.mguard --throttle 100 --pct-syskeys 20 -v -v 1000

 

6、monkey复现之seed值

使用-s参数来指定命令执行的seed值 

Monkey会根据seed值来生成对应事件流,同一个seed生成的事件流是完全相同的。这里指定了seed值,是为了测试发现问题时,便于进行问题复现。

# 已证实,seed值设置有效。

# ⚠️:每次开始前,app状态要一致,seed一致性才有效

adb shell monkey -p com.cleanmaster.mguard -s 1 -v -v 1000

 

7、monkey测试策略

(1)使用 --throttle 来控制事件间隔 

指定操作之间的时间间隔,一方面是希望能更接近用户的操作场景,正常用户操作都会有一定的时间间隔;另一方面也是不希望因为过于频繁的操作而导致系统崩溃,尤其是在比较低端的手机上执行测试时。因此通过–throttle设置Monkey每个操作固定延迟0.4秒。

(2)使用 --ignore-crashes --ignore-timeouts 

在执行Monkey测试时,会因为应用的崩溃或没有响应而意外终止,所以需要在命令中增加限制参数–ignore-crash和–ignore-timeouts,让Monkey在遇到崩溃或没有响应的时候,能在日志中记录相关信息,并继续执行后续的测试。

(3)修改注入事件的比例 

比如增加–pct-syskeys的比例,这样就可以增加触发返回键的比例,避免monkey测试长时间停留在一个界面,增加monkey覆盖的界面范围。

(4)指定要启动的Activity 

如果没有指定的activity,那么就会启动含有 Intent.CATEGORY_LAUNCHER 或 Intent.CATEGORY_MONKEY 的activity。可以使用 -c 来指定启动一个Activity,该activity必须至少包含一个指定的category,才能被启动,否则启动不了。

 

前面介绍了几种常见的Monkey测试方法,但在实际项目中,选择哪种Monkey测试策略,则需要根据实际项目的情况来做判断。主要是看测试目的及被测应用自身的特点。

  • 假如我们想测试浏览器的双指缩放功能是否有异常,那就需要选择–pct-pinchzoom参数,调大双指缩放事件的占比进行Monkey测试;

  • 假如我们想验证ROM的横竖屏切换功能是否正常,那就需要选择–pct-rotation参数,调大横竖屏切换事件的占比进行Monkey测试;

  • 假如我们想验证重复某种特定操作时,应用是否会存在异常,那可以选择-f参数,自定义Monkey脚本进行验证;

  • 假如我们想验证长时间操作时应用是否会存在内存泄漏,那就需要结合-hprof参数和dumpsys meminfo<进程名>进行Monkey测试。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值