zoukankan      html  css  js  c++  java
  • monkey操作,获取包名,参数,日志,百分比

    monkey的基本语法都是:

         adb  shell  monkey  -p  包名  执行的数字

    monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中,他向系统发送伪随机的用户时间流(如:按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

    monkey测试是一种为了测试软件的稳定性、健壮性的快速有效方法。

    首先要测试一款APP,需要先知道APP对应的包名是什么,除了可以向开发人家直接获取,还可以自己获取。

    在安装SDK的目录下面找到build-tools,具体路径E:android-sdk-windowsuild-tools28.0.3,在输入框中输入cmd进入DOS命令

    夜神模拟器:

    第一种,获取自己已经有apk的包名

    aapt dump badging +apk存放路径

    aapt dump badging  E:softlongtengappiumapk ouchaction.apk

    第二种:查看手机上所有APP的包名

    输入adb shell,进入命令后进入目录data/data

    1)adb shell

    2)进入手机的  cd data/data

    3) ls (需要root)

     

    查看手机或者第三方应用的包名:

    adb  shell  pm  list packages -3

    真机:

     打开开发者选项(小米手机在MUIU中连续点击)-之后在手机“设置”-“更多设置”中有一个“开发者选项”打开调试的功能

    然后win+r,输入adb devices

    如下情况表示连接成功

     获得包名以后就可以操作了:

    查看所有参数:

    adb shell monkey 

     

    1.  -p  : 指定包名

        1) 指定包名对应进行的点击数操作

             adb  shell monkey -p 包名 次数

        2)指定多个包

             adb shell monkey -p 包名1  -p 包名2  次数

    2. -v :打印日志

    用于指定反馈信息级别(信息级别就是日志的详细程度),总共有三个:

           1)level0:缺省值,仅提供启动提示、测试完成和最终结果等少量信息

                   adb  shell monkey -p 包名 -v 500

           2)  level1:提供较为详细的日志,包括每个发送到activity的信息

                 adb shell monkey -p 包名 -v  -v  500

           3)  level2:最详细的日志,包括测试中选中/未选中的activity信息

                 adb shell monkey -p 包名 -v  -v  -v  500

     3.   -s 随机数

    打印日志的时候包含了seed参数:

    这个参数是发送请求的时候自动生成的伪随机数,用于产生相同序列的执行流,比如有bug了,开发可以去模拟当时一模一样的场景:v

    我们可以自己指定相应的随机数seed:

      adb shell monkey -s 12345 -p com.taobao.taobao -v 500

    4.   throttle  : 毫秒

      用于指定用户操作即事件间的时延,单位是毫秒;如果不指定这个参数,monkey会尽可能快的生成和发送消息300毫秒

      指定500次的点击事件,每次之间间隔300毫秒:

          adb shell monkey -p com.taobao.taobao --throttle 300 500

    5.点击次数的设置

      500  这里指点击的次数,根据经验,单个应用程序设置在100000次就ok;如果是整机,设置在500000次

    6、--ignore-crashes

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

      adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-crashes 500

    7、--ignore-timeouts

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

       adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts 500

    8. --ignore-security-exception 

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

      adb shell monkey -s 12345 -p com.taobao.taobao -v --ignore-timeouts --ignore-security-exception 500

    9.--kill-process-after-error

        当Monkey由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态

    10、--monitor-native-crashes

      监视并报告Andorid系统中本地代码的崩溃事件。如果设置--kill-process-after-error,系统将停止运行。

    11.  --wait-dbg

      停止执行中的Monkey,直到有调试器和它相连接。

    12.  -c <main-category>

      如果你指定一个或多个类别,Monkey将只允许系统启动这些指定类别中列出的Activity。如果你不指定任何类别,Monkey将选择谢列类  别中列出的Activity,Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c,每个-c指定一个类别。

    13. --dbg-no-events

      设置此选项,Monkey将执行初始启动,进入一个测试Activity,并不会在进一步生成事件。为了得到最佳结果,结合参数-v,一个或多个包的约束,以及一个保持Monkey运行30秒或更长时间的非零值,从而提供了一个可以监视应用程序所调用的包之间转换的环境。

    14.  --hprof

      设置此选项,将在Monkey生成事件序列前后生成profilling报告。在data/misc路径下生成大文件(~5Mb),所以要小心使用。

    monkey事件百分比:event percentages

    由上图可以看出

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

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

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

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

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

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

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

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

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

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

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

    例如: 设置触摸事件需要占百分之60,(例如游戏的APP,触摸就会显得比较重要)

    0--10这11中事件的总共百分比=100%,不能超过100%.

        设置序列号为12345,包名是com.taobao.taobao,打印简单日志,点击事件500次,触摸事件百分比占60%:

        adb shell monkey -s 12345  -p  com.taobao.taobao -v --pct-touch 60 500 

    monkey日志的导出

        指定电脑某个位置:

      adb shell monkey -p com.taobao.taobao -v  500 > e: est.txt

    log分析:

      日志最开始都会显示Monkey执行的seed值、执行次数、测试的包名

      查看日志里是否出现了ANR或者异常

      ANR:日志里搜索“ANR ”(此处有空格)

      崩溃问题:日志里搜索“Exception”,快速定位到关键事件信息,然后查看Monkey里面出错前的一些时间动作,手动执行该动作,找到重现步骤,给你开发 

    成功日志和报错日志:

    成功日志会显示monkey finish ,events injected :100   # 执行完成,点击事件100次

    错误的话会有闪退或者卡死,明显的error字眼:

    会有CRASH字眼,后面跟上包名,闪退

    ANR异常,无响应的:原因比如代码设计不合理,网络搜索事件太长

     需要提供给开发的内容:

      1) 被测试手机的详细信息;

      2)monkey测试日志: 在cmd中输入命令后的内容

      3)手机运行截图;

      4)monkey运行时手机日志:可以定位到某一位置 adb logcat  >d: est

  • 相关阅读:
    STM32系列命名规则
    在使用MOS管时要注意的问题
    LED汽车前大灯
    Linux Makefile analysis for plain usr
    Linux Kernel Makefile Test
    linux源码Makefile的详细分析
    "The connection for the USB device '###' was unsuccessful. The device is currently in use"
    Allegro使用技巧
    Integrated Circuit Intro
    ADC/DAC的一些参数
  • 原文地址:https://www.cnblogs.com/yangguanghuayu/p/10970509.html
Copyright © 2011-2022 走看看