• monkey


    1. monkey基础知识

    monkey概况、常用参数、11大事件、环境搭建,以及monkey命令行使用方法
    money是Google提供的稳定性测试小工具,可运行在模拟器或真机。他项系统发送伪随机的用户事件,模拟用户的按键输入、触摸屏输入、手势输入等,从而对正在运行的应用程序进行压力测试。
    目的是看设备多长时间会出现异常,并观察系统的稳定性和容错性能
    monkey是Android系统自带的,其启动脚本是位于Android系统的/system/bin目录下的monkey文件,其jar包是位于Android系统的/system/framework目录的Monkey.jar,
    查看monkey文件

    whyred:/system/bin $ ls -l monkey                                                                                                                  
    -rwxr-xr-x 1 root shell 268 2009-01-01 00:00 monkey
    whyred:/system/bin $ cat monkey
    

    启动文件的代码

    # Script to start "monkey" on the device, which has a very rudimentary
    # shell.
    #
    base=/system
    export CLASSPATH=$base/framework/monkey.jar
    trap "" HUP
    for a in "$@"; do    #打印命令行参数
        echo "  bash arg:" $a
    done
    #根据命令行参数的配置,生成伪随机的事件流,并在Android设备上执行对应的事件
    exec app_process $base/bin com.android.commands.monkey.Monkey "$@" 
    

    2. monkey测试的基本方法

    常规的稳定性测试、自定义脚本的稳定性测试、结合常用辅助命令的monkey测试,以及monkey日志的分析方法

    3. 介绍monkey的原理,包括代码框架和代码逻辑分析

    4. monkey使用的进阶篇

    通过截图改造和Wi-Fi监控改造2个实际案例,介绍了如何通过修改monkey源码达到优化monkey工具的目的

    adb shell monkey -help
    

    1. COUNT 不可为空

    adb shell monkey 10
    

    2.[-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]

    这个参数是设定一个或几个包,Monkey将只允许系统启动这些包的活动。指定多个包时,需要使用多个-p,每个-p选项只能用于一个包。如果不指定,monkey将随机启动app。

    #指定一个应用
    adb shell monkey -p com.cubic.autohome  1000
    #指定多个应用,汽车之家和UC浏览器
    adb shell monkey -p com.cubic.autohome -p com.UCMobile 1000
    

    如果应用隐藏了启动Activity,可以使用monkey -p启动。uiautomator2的就是这么做的

    3. [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...]

    指定意图的分类,这样monkey只会启动可以处理这些种类的意图的活动。如果没有设置用于指定某个类,Monkey就默认执行Intent.Category_LAUNCHER和Intent.Category_MONKEY。可以使用多个-c选项,但是每个-c命令选项只能用于一个类。

    4.-v 打印信息的详细级别

    -v 0级:打印测试时执行的一些发送给被测试的Activity的事件
    -v -v 1级:增加了那些Activity被选中,将在信息被输出出来
    -v -v -v 2级:那些应用已经安装了但是却没有被选中的信息也被输出出来

    5.-s SEED]

    伪随机数生成器的种子值,如果用相同的随机种子值,前后两次执行将会生成相同的时间序列.
    注意:如果要得到seed值,需要加-v参数查看

    6. --throttle MILLISEC 毫秒

    这个参数是设定在两个事件之间插入一个固定延时,它可以减缓Monkey的执行速度。如果不指定,Monkey将不会被延迟,事件将尽可能快的被执行

    adb shell monkey -p com.UCMobile --throttle 3000 100
    

    7.--pct-touch PERCENT

    设定触屏事件生成的百分比,触屏事件是一个手指按下、抬起的手势。

    adb shell monkey --pct-touch 50 -p com.cubic.autohome --throttle 3000  100
    

    8.--pct-motion PERCENT

    设定滑动事件生成的百分比,滑动事件是从一个坐标按下到另一个坐标抬起的手势

    adb shell monkey --pct-motion 50 -p com.cubic.autohome --throttle 3000  100
    

    9.--pct-trackball PERCENT

    设定轨迹球事件生成的百分比。轨迹球是包含一系列随机移动和单机事件的事件

    10.--pct-nav PERCENT

    设置基本的导航事件的百分比,基本导航事件包括模拟方向性设备输入向上、向下、向左、向右的事件

    11.--pct-majornav PERCENT

    设定主要导航事件的百分比,主要导航事件如back键、home键、menu键

    12.--pct-syskeys PERCENT

    设定系统按键事件的百分比,系统按键是指这些按键通常被保留,由系统使用,如home、back、拨号、挂断、音量控制键。

    13.--pct-appswitch PERCENT

    这个参数是设定启动活动事件的百分比。在随机的一定间隔后,monkey就会执行一个startActivity()函数尽可能多的覆盖包中全部活动

    14.--pct-anyevent PERCENT

    设定其他类型事件的百分比,如普通的按键消息,不常用的设备按钮事件等。

    15.--dbg-no-events

    若指定了该参数,monkey将会执行初始启动,进入到一个测试Activity,不会再进一步生成事件。

    16.--hprof

    monkey会在发送事件序列的前后,生成性能分析报告。通常会在/data/misc/目录下生成一个文件

    17.--ignore-crashes

    通常情况下,monkey会在待测应用程序崩溃或发生任何异常后停止运行。若指定了该参数,则monkey将会在产生异常后,继续向系统发送事件,直到事件全部完成

    adb shell monkey -p com.UCMobile --ingore-crashes 100
    

    18.--ignore-timeouts

    --ignore-timeouts|通常情况下,当应用程序发生任何超时错误(应用ANR)时,monkey将会停止运行。若指定了该参数,monkey将会在产生错误信息后,继续向系统发送事件,直到指定的事件全部完成

    19.--ignore-security-exceptions

    通常情况下,monkey会在被测应用程序发生权限方面的错误时停止运行。若指定了该参数,则monkey将继续想系统发送事件,直到指定的事件全部完成

    20.--kill-process-after-error

    通常情况下,monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。当设置了此选项,它将会通知系统停止发生错误的进程。

    adb shell monkey -p com.UCMobile --kill-process-after-error 100 -v
    

    21.--monitor-native-crashes

    监视由Android系统本地代码部分引起的崩溃,若同时指定了--kill-process-after-error参数,则整个系统将会关机

    22.--wait-dbg

    启动monkey后,先中断其运行,等待调试器和它相连接

    23.--ignore-native-crashes

    24.--match-description TEXT

    25.--pct-flip PERCENT

    26.--pct-pinchzoom PERCENT

    27.--pct-permission PERCENT

    28.--pkg-blacklist-file PACKAGE_BLACKLIST_FILE

    29.--pkg-whitelist-file PACKAGE_WHITELIST_FILE

    30.--setup scriptfile

    31.[-f scriptfile [-f scriptfile] ...]

    32.--port port

    33.--randomize-throttle

    34.--profile-wait MILLISEC

    35.--device-sleep-time MILLISEC

    36.--randomize-script

    37.--script-log

    38.--bugreport

    39.--periodic-bugreport

    40.--permission-target-system

     monkey -p com.UCMobile--ignore-timeouts --ignore-security-exceptions --pct-trackball 0 --pct-nav 0 --pct-majornav 0 --pct-anyevent 0  -v -v -v --throttle 500 1200000000 > /data/local/tmp/monkeySC.log 2>&1 &
    
  • 相关阅读:
    C
    数论::整除分块
    洛谷P1262 间谍网络
    洛谷P1649 【[USACO07OCT]障碍路线Obstacle Course】
    HDU2066dijkstra模板题
    Captain Flint and Treasure
    CodeForces
    CodeForces
    HDU-1827
    HDU 1811
  • 原文地址:https://www.cnblogs.com/csj2018/p/10611388.html
Copyright © 2020-2023  润新知