• Monkey基本使用(转载)


    什么是 Monkey

    Monkey 是一个 Android 自动化测试小工具。主要用于Android 的压力测试, 主要目的就是为了测试app 是否会Crash.

    Monkey 特点

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

    Monkey程序介绍

    Monkey 程序是由 Android 系统自带,使用 Java 语言写成。在Android文件系统中的存放路径是: /system/framework/monkey.jar;

    Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;

    Monkey 启动方式:在 cmd 命令提示符里面输入命令行来启动 monkey 测试。

    Monkey 架构

    Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

    这里写图片描述

    Monkey 参数大全

    这里写图片描述

    Monkey 命令基本参数介绍

    1、允许启动手机里面所有的 App , 随机操作 1000 次

    adb shell monkey 1000

    2、-p : 允许启动 App 的包名

    • 启动一个包名的应用

    QQ 的包名为: com.tencent.mobileqq

    adb shell monkey -p com.tencent.mobileqq 1000

    随机操作 手机 QQ 1000 次

    • 启动指定的多个 App

    微信的包名为:com.tencent.mm

    adb shell monkey -p com.tencent.mobileqq -p com.tencent.mm 1000

    随机操作 手机 QQ 和 微信 1000 次

    3、-v : 操作日志记录

    命令行的每一个-v将增加反馈信息的级别。

    • -v:Level 0(缺省值)除 启动提示、测试完成和最终结果之外,提供较少信息。
    • -v -v :Level 1提供较为详细的测试信息,如逐个发送到Activity的 事件。
    • -v -v -v :Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。

    adb shell monkey -p com.tencent.mobileqq -v -v -v 100

    4、-s : 伪随机数生成器的seed值

    如果用相同的seed值再次运行monkey,将生成相同的事件序列。

    adb shell monkey -s 12345 -v 10

    5、--ignore-crashes : 忽略操作是崩溃异常

    通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

    adb shell monkey --ignore-crashes -v 1000

    6、--ignore-timeouts : 忽略超时

    通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

    adb shell monkey --ignore-timeouts -v 1000

    7、--ignore-security-exceptions : 忽略程序发生许可异常

    通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

    adb shell monkey --ignore-security-exceptions -v 1000

    8、--throttle : 插入固定延迟

    在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被执行。

    adb shell monkey --throttle 500 -v 500

    随机执行 500 个事件,每个事件之间延迟 500 毫秒被执行。

    9、----pcdt-touch:修改点击的概率

      其他相应事件:

    0:--pct-touch 调整touch事件的比例
    1:--pct-motion 调整移动事件的比例
    2:--pct-pinchzoom 二指缩放百分比,即智能机上的放大缩小手势操作
    3:--pct-trackball 轨迹球事件百分比(轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)
    4:--pct-rotation 屏幕旋转百分比,横屏竖屏
    5:--pct-nav ”基本”导航事件百分比(导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有
    6:--pct-majornav ”主要”导航事件百分比(这些导航事件通常会引发UI的事件,例如5-way pad的中间键、回退键、菜单键)
    7:--pct-syskeys ”系统”按钮事件百分比(这些按钮一般专供系统使用,如Home, Back, Start Call, End Call,音量控制)
    8:--pct-appswitch 启动activity事件百分比。在随机的间隔里,Monkey会执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
    9:--pct-flip 键盘轻弹百分比,如点击输入框,键盘弹起,点击输入框以外区域,键盘收回
    10:--pct-anyevent其他类型事件百分比。包括了其他所有的类型事件,如按键、其他不常用的设备上的按钮等等。

      使用方法:

        adb shell monkey <事件> <百分比,例如60代表60%>

      例如:adb shell monkey --pcdt-touch 60

    10、--help : 列出简单的用法

    adb shell monkey -help

     

    综合使用并生成日志:Adb shell monkey -s 12345 -p <包名> -v -v -v  --ignore-crashes --pcdt-touch 60  --ignore-timeouts --throttle 300 100 >d:pakage_0303.txt

    参考:

    https://www.cnblogs.com/songzhenhua/p/9312810.html

    https://www.cnblogs.com/zhaoyanjun/p/6861278.html

     
  • 相关阅读:
    561. Array Partition I
    448. Find All Numbers Disappeared in an Array
    136. Single Number
    485. Max Consecutive Ones
    463. Island Perimeter
    496. Next Greater Element I
    344. Reverse String
    【.net项目中。。】.net一般处理程序使用方法
    【ExtAspNet学习笔记】ExtAspNet控件库中常见问题
    用VS2010创建三层架构开发模式及三层架构的研究
  • 原文地址:https://www.cnblogs.com/wuyufeng-9-14/p/10736038.html
Copyright © 2020-2023  润新知