美文网首页
Android Monkey相关

Android Monkey相关

作者: 柒月下旬 | 来源:发表于2019-04-12 10:35 被阅读0次

    开发者文档 https://developer.android.com/studio/test/monkey?hl=zh-cn

    主要是命令行工具,相关命令如下

    $ adb shell 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]
                  [--match-description TEXT]
                  [--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]
                  [--pct-permission 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]
                  [--permission-target-system]
    

    基本用法

    基本分为四类命令

    • General 基本配置选项,查看帮助信息,运行次数等
    • Events 配置各种事件的占比,如点击事件,触摸事件等的占比
    • Constraints 约束选项,如指定运行包名
    • Debugging 调试相关
    $ adb shell monkey [options] <event-count>
    

    General


    -- help

    查看帮助信息

    -v

    命令行上的每个-v都会增加详细级别。级别0(默认值)提供的信息除启动通知,测试完成和最终结果外几乎没有。级别1提供有关测试运行的更多详细信息,例如发送到您的活动的单个事件。级别2提供更详细的设置信息,例如选择或未选择用于测试的活动。

    $ adb shell monkey  -p packageName -v -v 20
    

    Events


    -s <seed>

    伪随机数发生器的种子值。如果您使用相同的种子值重新运行Monkey,它将生成相同的事件序列。

    $ adb shell monkey -s 30021 -p packageName  20
    

    --throttle <milliseconds>

    在事件之间插入固定的延迟。可以使用此选项来减慢Monkey的速度。如果未指定,则没有延迟,并且事件尽可能快地生成。加上这个选项模拟人操作。

     $ adb shell monkey --throttle -p packageName  20
    

    各种事件配置选项

    • --pct-touch <percent> 调整触摸事件的百分比。(触摸事件是屏幕上单个位置的下行事件。)

    • --pct-motion <percent> 调整运动事件的百分比。(运动事件包括屏幕上某处的向下事件,一系列伪随机运动和一个向上事件。)

    • --pct-trackball <percent> 调整轨迹球事件的百分比。(轨迹球事件由一个或多个随机动作组成,有时随后单击。)

    • --pct-nav <percent> 调整“基本”导航事件的百分比。(导航事件由上/下/左/右组成,作为来自方向输入设备的输入。)

    • --pct-majornav <percent> 调整“主要”导航事件的百分比。 (这些导航事件通常会导致UI中的操作,例如5向键盘中的中心按钮,后退键或菜单键。)

    • --pct-syskeys <percent> 调整“系统”键事件的百分比。 (这些是通常保留供系统使用的密钥,例如Home,Back,Start Call,End Call或Volume控件。)

    • --pct-appswitch <percent> 调整活动启动的百分比。在随机的时间间隔内,Monkey将发出一个startActivity()调用,作为最大化包中所有Activity的覆盖范围的方法。

    • --pct-anyevent <percent> 调整其他类型事件的百分比。这是所有其他类型事件的全部内容,例如按键,设备上其他较少使用的按钮等

    来一条组合的命令

    $ adb shell monkey -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-motion 25 --pct-appswitch 25 --pct-majornav 5 --pct-nav 0 --pct-trackball 0 -p com.mtt.djx 10 >G:\monkey.txt
    
    会在相应目录保存一份文件(此处为G:\monkey.txt),运行结果: 运行结果.png

    Constraints


    -p <allowed-package-name>

    为约束命令,作用是约束只对某个应用进行测试,your.package.name是你要进行测试的应用包名,如果要对多个应用进行测试可以使用多个-p。

    -c <main-category>

    如果以这种方式指定一个或多个类别,则Monkey将仅允许系统访问使用指定类别之一列出的活动。如果您未指定任何类别,Monkey将选择使用Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY类别列出的活动。要指定多个类别,请多次使用-c选项 - 每个类别一个-c选项。

    Debugging


    • --dbg-no-events 指定后,Monkey将执行初始启动到测试活动,但不会生成任何其他事件。为了获得最佳效果,请结合-v,一个或多个程序包约束以及非零限制以使Monkey运行30秒或更长时间。这提供了一个环境,您可以在其中监视应用程序调用的包转换。

    • --hprof 如果设置,此选项将在Monkey事件序列之前和之后立即生成分析报告。这将在data / misc中生成大(~5Mb)文件,因此请小心使用。

    • --ignore-crashes 通常,当应用程序崩溃或遇到任何类型的未处理异常时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

    • --ignore-timeouts 通常,当应用程序遇到任何类型的超时错误(例如“应用程序无响应”对话框)时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

    • --ignore-security-exceptions通常,当应用程序遇到任何类型的权限错误时,Monkey将停止,例如,如果它尝试启动需要某些权限的活动。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。

    • --kill-process-after-error 通常,当Monkey因错误而停止时,失败的应用程序将保持运行状态。设置此选项后,它将通知系统停止发生错误的进程。注意,在正常(成功)完成下,启动的进程不会停止,并且设备在最终事件之后只是处于最后状态。

    • --monitor-native-crashes 观看并报告Android系统本机代码中发生的崩溃。如果设置了--kill-process-after-error,系统将停止。

    • --wait-dbg 阻止Monkey执行,直到调试器连接到它。

    $ adb shell monkey  --ignore-crashes --ignore-timeouts  -p packageName  -v -v 20
    

    相关文章

      网友评论

          本文标题:Android Monkey相关

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