美文网首页
Android 压力测试 - Monkey

Android 压力测试 - Monkey

作者: Vankaln | 来源:发表于2018-01-06 16:11 被阅读54次

    什么是 Monkey

    Monkey是Android中用来做测试的工具,它可以利用 adb 启动,然后在模拟器里或实际设备中运行。

    Monkey有什么用

    它可以向android系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行自动化压力测试,主要测试应用是否会出现 Crash 或者 ANR 的问题,可以有效地校验一款软件的稳定性和健壮性。

    Monkey 具体选项

    Monkey包含很多选项,但主要分为以下四个类别:
    1、 基本配置选项,如设置要尝试的事件数量。
    2、 操作上的限制,比如将测试限制在一个包中。
    3、 事件类型和频率。
    4、 调试选项。

    基本语法

    $ adb shell monkey [options] <event-count>
    

    Monkey的基本用法

    让我们先跑起一个最简单的 monkey,具体做法:
    1、 下载安装Android SDK 并配置好 adb 环境变量(自行 google)
    2、 把手机或者模拟器链接到电脑
    3、 在命令好或者 android studio 的Terminal中输入以下命令行:

    adb shell monkey 1000
    

    经过以上步骤,你会发现你的手机或者模拟器会自动运行一顿操作,那就是 Monkey 触发的随机事件流。

    常用命令介绍

    1、 -p (指定 Monkey 触发事件流所在的应用)
    指定包之后,monkey将只允许系统启动指定的app。如果不指定包, monkey将允许系统启动设备中的所有app。
    示例:

    adb shell monkey -p com.android.calculator2  1000
    

    2、-v 用于日志输出级别(就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:

    // Level 0:默认值,仅提供启动提示、测试完成和最终结果等少量信息
    adb shell monkey -p com.android.calculator2  -v  1000
    
    // Level 1:提供较为详细的日志,包括每个发送到Activity的事件信息
    adb shell monkey -p com.android.calculator2  -v -v  1000
    
    //Level 2:最详细的日志,包括了测试中选中/未选中的Activity信息
    adb shell monkey -p com.android.calculator2  -v -v -v 1000
    

    3、 -s(伪随机数发生器的种子),如果用相同的种子值重新运行Monkey,它将生成相同的事件序列。示例:

    adb shell monkey -p com.android.calculator2 -s 10 1000
    

    4、 --pct-touch <percent> 指定触摸事件占总事件的比例,如果想Monkey 产生的所有事件都是触摸事件,可以指定 percent 为100%,示例:

    adb shell monkey -p com.android.calculator2 --pct-touch 100 100
    

    可以利用-v 看事件占用的比例

    adb shell monkey -v -p com.android.calculator2 --pct-touch 100 100
    

    可以看到下图产生的触摸事件占比为100%


    事件占比图片

    4、--ignore-crashes (忽略 Crash), 一般当应用程序崩溃或遇到任何类型的未处理的异常时,Monkey将停止产生事件。 如果你指定这个选项,Monkey将继续发送事件到系统,直到计数完成。示例:

    adb shell monkey -p com.android.calculator2 --ignore-crashes 100
    

    5、--ignore-timeouts(忽略 ANR),一般当应用程序遇到任何类型的超时错误(如弹出“应用程序未响应”对话框)时,Monkey将停止。 如果你指定这个选项,Monkey将继续发送事件到系统,直到计数完成。示例:

    adb shell monkey -p com.android.calculator2 --ignore-timeouts 100
    

    更多选项

    以上是我测试常用的选项,想看更多选项,请参考https://developer.android.com/studio/test/monkey.html

    相关文章

      网友评论

          本文标题:Android 压力测试 - Monkey

          本文链接:https://www.haomeiwen.com/subject/prdynxtx.html