zoukankan      html  css  js  c++  java
  • Monkey测试:Monkey的简单使用

    MonkeyAndroid SDK提供的一个命令行工具,可以简单方便的发送伪随机的用户事件流,对Android APP做压力(稳定性)测试。主要是为了测试app是否存在无响应和崩溃的情况。

    一、环境搭建

      只要按照配置Android SDK环境和环境变量即可。

    二、Monkey的使用

    1、进入adb shell 环境

      在windows环境中,进入DOS界面,在界面中,输入adb shell即可进入adb shell环境

    (注意:adb shell服务使用的5037的端口,如果此端口被其他进程占用时,将不能正常启动adb shell,问题处理方法见:启动adb shell报错

    如:

     

      表示adb shell启动成功,shell@****/$中,****表示设备id$:表示普通用户;#表示root用户。

    2、在adb shell环境下输入monkey的相应命令即可。

    如:

    3、查看需要测试的包名

      如果有root权限,可以进入/data/data/下使用ls/ls-a查看(不能使用ll

      如果无root权限,可以使用:pm  list packages查看

      (需要控制monkey执行的时间,可以通过设置执行时长/事件发送延时,计算出需要执行的次数。如:想要monkey运行24小时,每100毫秒发送一个事件。24*60*60*1000/100=864000(次)

      monkey -p   ***  --ignore-crashes --ignore-timeoutss --throttle 100 864000

      表示:此次monkey将会运行24小时

    三、Monkey的命令参数详细说明

      monkey的命令参数分为:

      基础参数:-v -s -p --throttle

      调试选项:--ignore-crashes

      事件类型:--pct-touch

    (一)基础参数

    1、最简单的monkey命令(monkey 100

    表示:在设备上,针对整个系统发送100个伪随机事件。

     

    2-v参数

    用于指定反馈信息级别(信息级别就是日志的详细程度)总共分为3级,默认为-v(对应:level0

    -v:只提供启动提示、测试完成提示和最终结果等少量信息。

    -v -v:较为详细的日志,包括每个发送到activity的时间信息。

    -v -v  -v:最详细的日志,包括测试中选中/未选中的activity信息。

     

      注意:在monkey测试完成时,最后一定会有一个:monkey finished标识。

    3-p参数

      在我们测试时,是针对具体的app进行测试的,所以在使用monkey测试时,我们需要提供具体的app包名给monkey,此时就需要用到参数-p-p后跟随app包名。

      在测试时,可以不指定包名,此时monkey会在测试设备上随机启动app进行操作;如果只需要测试一个app,使用一个-p即可;如果有多个app同时测试,可以直接使用-p 包名1 -p 包名2指定具体要测试的app

    如:

    4-s参数

      种子值(seed),因为monkey是发送的是伪随机的事件流,但是如果两次seed值相同,那两次monkey测试所产生的事件序列也相同。(所以一般在测试时要记录seed值,以防出现无响应和crash,不容易验证。)

      注意:-s需要跟在包名后,次数前

    5--throttle参数

      设置执行操作的延迟时间(毫秒)--是指两个事件之间的间隔,如果没有指定此参数,会尽可能快的生成和发送事件。

    (二)调试选项

    1--ignore-crashes

      用于指定当应用程序崩溃时,Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,直到事件计数完成。

    2---ignore-timeouts

      用于指定当应用程序发生ANRApplication No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成。

    3--ignore-security-exceptionss

      用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。

    4--kill-process-after-error

      用于指定当应用程序发生错误时,是否停止其运行。如果指定此参数,当应用程序发生错误时,应用程序停止运行并保持在当前状态(注意:应用程序仅是静止在发生错误时的状态,系统并不会结束该应用程序的进程)。

    5--monitor-native-crashes

      用于指定是否监视并报告应用程序发生崩溃的本地代码

    6--hprof

      该选项设置后,将会在monkey事件序列前后立刻生成report,大小为大于5MB,存储在/data/misc

    (三)事件类型

      monkey在发送伪随机事件时,是有不同的类型的。默认随机分配比例,也可以指定其百分比。如果不设置会是--pct-anyevent100%,也就是纯随机事件;如果配置了其他参数,但是不够100%,余下的百分比部分也是--pct-anyevent事件。

    如:

     

    目前共包含11中类型的事件。

    分别为:

    0:触摸事件--pct-touch

      调整touch触屏事件的百分比,触碰事件就是指在屏幕上的一个单独位置的一次点击/抬起的事件。

    1:滑屏事件--pct-motion(手势事件)

      (手势事件是由一个在屏幕某处的按下事件、一系列的伪随机移动、一个抬起事件组成)即一个滑动操作,但是是直线的,不能拐弯)

    2:轨迹球--pct-trackball

      (轨迹球事件包括一个或多个随机移动,有时还伴有点击。轨迹球现在智能手机上已经没有了,就是类似手柄的方向键一样)

    3:

    4:旋转(--pct-rotation

      旋转屏幕

    5:

    6:导航--pct-nav

      (导航事件包括上下左右,如方向输入设备的输入)老手机的上下左右键,智能机上没有)

    7:主导航--pct-majornav

      调整主要导航事件的百分比(如中间键、取消、确定或菜单引发的图形接口的动作)

    8:系统按键--pct-syskeys

      调整系统按键事件,如:home/back/startcall/endcall以及音量控制键等

    9:app切换--pct-appswitch

      调整启动activity的百分比,在随机间隔中,执行一个startActivity()方法调用,作为一种最大化的覆盖安装包的所有的activity的方法

    10:键盘翻转(--pct-flip

    11:随机--pct-anyevent

      调整其他类型的事件的百分比,比如按键或其他不太常用到的一些事件的百分比

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/smallstone2018/p/10024500.html
Copyright © 2011-2022 走看看