• 09- monkey命令详解


    安装模拟器

    如果你没有手机可以安装个模拟器,如果有手机了,忽略此步骤。

    1.下载模拟器:http://www.xyaz.cn/

    2.安装:直接默认安装。

    3.打开安卓模拟器,设置-关于手机-点击版本号-进入开发者模式,勾选USB调试。

    4.打开cmd窗口,进入模拟器安装目录,执行cmd命令:adb connect 127.0.0.1:62001

     

    参考:https://www.cnblogs.com/xinjing-jingxin/p/9326837.html

    Monkey是什么?

    monkey是Android中附带的一个工具。可以运行在模拟器或者实际设备中。

    它像系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等)实现对正在开发的应用程序进行压力测试。

    monkey测试的目的是什么?

    1.进行压力测试

    2.然后开发人员结合monkey打印的日志和系统打印的日志,发现测试中出现的问题。

    monkey测试的特点

    monkey测试,所有的事件都是随机产生的,不带任何主观性。

    monkey的组成:

    1.基本配置选项,如设置尝试的事件数量。

    2.运行约束选项,如设置值对单独的一个包进行测试

    3.事件类型和频率

    4.调试选项。

    压力测试要从两个点开始:

    1.CRASH:奔溃,闪退。

    2.ANR:无响应

    monkey的工作原理

    monkey运行的时候,他生成伪随机事件流,并把他们发给系统。同时,monkey还对测试中的系统进行监控,并进行特殊处理(比如:自动停止)

    如果应用程序崩溃或接收到任何失控异常,monkey将停止并报错。

    如果应用程序产生了应用程序不响应(application not responding)的错误,monkey将会停止并报错。

    按照选定不同级别的反馈信息,在monkey中还可以看到其执行过程报告和生成的事件。

    monkey命令运行

    开始》运行》cmd

    USB连接手机,输入adb shell monkey命令 :就会列出monkey命令参数

    adb shell monkey 20 :随机执行20次

    adb shell monkey -p 程序包 -v 测试次数(其中程序包可以通过pm list packages显示所有的程序包)

    例子:adb shell monkey -p com.taobao.taoboa -v 100  :对淘宝这个程序包进行100次的monkey测试。

     日志的获取:

    为了方便分析问题,也可以将日志信息重定向到文件中。

    monkey -p 包名 -v 2000 >D1.Ttxt

    monkey命令行参数-P

    指定多个包:

    monkey -p 包名1 -p包名2

    不指定包:monkey 100

    说明:monkey随机启动APP并发100个随机事件。

    monkey命令行参数 -v

    参数:-v

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

    日志级别 level 0

    示例:monkey -p  包名 -v 100

    说明:缺省值,仅提供启动提示,测试完成和最终结果等少量信息。

    日志级别 level 2

    示例:monkey -p 包名 -v -v 100

    说明:提供较为详细的日志,包括每个发送到Activity的事件信息。

    日志级别:level 2

    示例:monkey -p 包名 -v -v -v 100

    说明:最详细的日志,包括测试中选中/来选中的Activity信息。

    monkey命令行参数 -S

    参数:-s

    用于指定伪随机数生成器的seed值,如果seed相同,则两次monkey测试所产生的事件序列也是相同的。

    monkey -p 包名 -s 10  100

    monkey -p 包名 -s 10  100

    两个测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成一系列操作,即一个序列)是一样的。操作序列虽然是随机生成,但是我们指定了相同的seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列到伪随机的。

    monkey命令行参数 --throttle

    参数:--throttle<毫秒>

    用于指定用户操作(即事件)的时间延迟,单位是毫秒。

    实例:

    monkey -p 包名 --throttle 3000  100

    向此应用发送100次伪随机事件,每次事件间隔3s。

    monkey命令行参数 -ignore

    参数: --ignore - crashes

    用于指定当应用程序崩溃时(force&close错误),monkey是否停止运行。如果使用此参数,即使应用程序崩溃,monkey依然会发送事件,知道事件计数完成。

    示例:

    monkey 包名 -ignore -crashes 1000

    测试过程中即使程序崩溃,monke依然会继续发送事件直到事件数目达到1000为止。

    monkey命令行参数 -timeout

     参数: --ignore -timeout 

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

     

     

     monkey测试结果分析步骤

    重要命令:

    crash:奔溃

    ANR:无响应

    [--ignore-crashes]  [--ignore-timeouts] 

    100次:60次停止 。。。

    操作上忽略,日志记录+系统日志:全部

    [-s  SEED] : 序列值

    adb shell monkey -p com.taobao.taobao -s 450 -v

    [-v  [-v] ...]:  日志级别:一个 -v是一个级别 最多三个-v

    throttle:打印文档的速率  throttle  3000  (单位是毫秒)

    adb shell monkey -p com.taobao.taobao -s 450 -v  --throttle 3000

    日志的获取

    monkey- p cn.com.pyc   -v 20000>d:1.txt

    monkey测试结果分析步骤

    1.monkey结束以后,要查看是否遇到异常结束,如果log结束出现monkey aborted due to erro异常。

    2.复现时,使用之前执行的monkey命令在执行一遍,注意seed值要一样。

     

  • 相关阅读:
    Ubuntu安装搜狗sougou输入法
    gradle windows 环境变量
    Gradle 使用Maven本地缓存
    Java 命令后台运行jar包
    spark 2.1.0 集群安装
    hadoop 2.7.3 集群安装
    springboot + shiro + cas4.2.7 实战
    cas4.2以下取消https
    cas4.2.7 取消https
    springboot 中使用websocket简单例子
  • 原文地址:https://www.cnblogs.com/Chamberlain/p/10989789.html
Copyright © 2020-2023  润新知