• Android Monkey 压力测试 介绍


    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试

    阅读目录

    1. 环境搭建
    2. 什么是Monkey
    3. Monkey 用来做什么
    4. Monkey程序介绍
    5. Monkey 架构
    6. Monkey弱点
    7. Monkey 参数大全
    8. Monkey 命令 基本参数介绍
    9. Monkey 实例
    10. Monkey 查看包名
    11. Monkey  日志分析
    12. 必须重视Crash

     

    环境搭建

    安装Android SDK 并配置环境变量

    http://pan.baidu.com/s/1jIlifbS

     

    什么是Monkey

    顾名思义,Monkey就是猴子,  Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。  猴子什么都不懂, 只知道乱敲

    通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常

     

    Monkey 用来做什么

    Monkey 主要用于Android 的压力测试  自动的一个压力测试小工具, 主要目的就是为了测试app 是否会Crash.

     

    Monkey程序介绍

    (1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;   
    (2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;  
    (3)Monkey 命令启动方式:    
              a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试          

    b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试          

    c )  在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器  

     

    Monkey 架构

    Monkey 运行在设备或模拟器上面,可以脱离PC运行(普遍做法是将monkey作为一个像待测应用发送 随机按键消息的测试工具。验证待测应用在这些随机性的输入面前是否会闪退或者崩溃)

     

    Monkey弱点

    Monkey虽然可以根据一个指定的命令脚本发送按键消息,但其丌支持条件判断,也丌支持读取待测界 面的信息来执行验证操作。

     

    Monkey 参数大全

     

    Monkey 命令 基本参数介绍

    -p <允许的包名列表>         

    用此参数指定一个或多个包。指定包之后,monkey将只允许系统启动指定的app。如果丌指定包, monkey将允许系统启动设备中的所有app。  

    指定一个包:adb shell monkey -p com.shjt.map 100   

    指定多个包:adb shell monkey -p fishjoy.control.menu  –p com.shjt.map  100  

    -v        

    用亍指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下 表所示: 

    Level 0  :  adb shell monkey -p com.shjt.map -v 100               // 缺省值,仅提供启动提示、测试完成和最终结果等少量信息   

    Level 1  :  adb shell monkey -p com.shjt.map -v  -v 100          // 提供较为详细的日志,包括每个发送到Activity的事件信息

    Level 2  :  adb shell monkey -p com.shjt.map -v  -v  -v 100     // 最详细的日志,包括了测试中选中/未选中的Activity信息


    -s(随机数种子)            

    用亍指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。  示例:

    monkey测试1:adb shell monkey -p com.shjt.map –s 10 100                

    monkey测试2:adb shell monkey -p com.shjt.map –s 10 100  


    --throttle <毫秒>            

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

    例:adb shell monkey -p com.shjt.map --throttle 3000 100   

     

    Monkey 实例

    用monkey 命令 对上海公交 app进行 性能测试
    adb shell monkey –p com.shjt.map –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 1000 >c:monkey.txt

     

    Monkey 查看包名

    手机中安装APK包名查看器  

    源码下的AndroidManifest.xml文件查看  
    aapt命令查看  


     

    Monkey  日志分析

    正常情况,  如果Monkey测试顺利执行完成, 在log的最后, 会打印出当前执行事件的次数和所花费的时间; // Monkey finished 代表执行完成

    异常情况

    Monkey 测试出现错误后,一般的分析步骤
    看Monkey的日志 (注意第一个swith以及异常信息等)
    1. 程序无响应的问题: 在日志中搜索 “ANR”
    2. 崩溃问题:在日志中搜索 “Exception”   (如果出现空指针, NullPointerException)  肯定是有bug

    Monkey 执行中断, 在log最后也能看到当前执行次数

     

    必须重视Crash

    虽然Monkey测试有部分缺陷,我们无法准确地得知重现步骤, Monkey测试所出现的NullPointException,  都是可以在用户使用时出现的, 何时出现只是时间问题

    理论上来说,  Monkey所有的Crash 都需要在发布前修复掉

  • 相关阅读:
    problems_mysql
    skills_mysql
    knowledge_mysql
    knowledge_impala
    oozie的常见错误
    problems_kafka
    problems_flume
    kafka在zookeeper默认使用/为根目录,将/更换为/kafka
    java学习笔记总略
    大公司怎么开发和部署前端代码——作者:张云龙[知乎兴趣转载]
  • 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/8137490.html
Copyright © 2020-2023  润新知