• Monkey界面版测试工具


    一、前言

    1.什么是Monkey

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

    2.使用场景

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

    为什么要开展app压力测试?
    (1)、为了提高产品的稳定性;
    (2)、为了提高产品的留存率;

    那什么时候进行压力测试呢?
    首轮功能测试通过以后,等产品稳定,没有太多的 bug 的时候,一般会用 monkey 去测试待测应用的稳定性,健壮性
    (是否会发生闪退,崩溃,无响应)和整机测试

    3.所需环境

    1. adb
    2. jdk
      具体安装这里就不再赘述

    4.具体使用方式及日志分析

    这里我也不做搬运工了
    贴几个自己感觉不错的教程

    5.关于Monkey测试的停止条件

    Monkey Test执行过程中在下列三种情况下会自动停止:

    1.如果限定了Monkey运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。

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

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

    通过多次并且不同设定下的Monkey测试才算它是一个稳定性足够的程序

    二、界面版工具

    1.界面版优势:

    • 无需命令输入,简单易操作,极大提高工作效率;
    • 可根据原生 monkey seed 值或者时间来控制执行次数或者运行时间;

    2.界面展示

    Monkey-GUI

    3.使用方式

    1.打开exe运行程序
    2.选择设备
    3.自行设置事件次数seed值延迟时间、及事件比例
    4.输入要测试的包名
    5.开始执行
    6.查看日志

    4.用chkbugreport把日志转换成html报告

    ChkBugReport介绍

    ChkBugReport是一个开源工具,它可以把你得到的bugreprot解析成适合阅读的html文件。导出的html文件包含了根据bugreport数据得出的图表和分析结论。

    使用

    1.把日志转换为ChkBugReport可解析的格式
    adb shell bugreport > log/bugreport.txt 转换过程比较慢,耐心等待,报错不用管

    2.解析日志并转换为html报告
    java -jar chkbugreport.jar log/bugreport.txt

    3.打开logugreport_outindex.html即可

    monkey_report

    4.报告释义

    • system log:系统日志
    • Log level distribution:日志级别分布
    • kernel log:内核日志
    • event log:事件日志
    • raw data:原始数据

    目前ChkBugReport可以从bugreport数据中抽取出如下信息:

    1、Stacktraces
    ChkBugReport可以从bugreport中解析出输出bugreport的最后时刻、导致ANR时刻甚至更多时刻的堆栈信息。在例子中你可以看到进程的优先级和策略都已标示出来,堆栈中耗时的部分颜色是黑红,一些违反Strict Mode的部分(比如主线程中使用数据库)颜色标记为亮红。如果这个线程死锁,在报告的Errors将会出现。

    2、Logs
    这部分是对system、main和kernel日志的分析,在这里你可以看到每个进程内存使用图、那个程序产生的log最多、Activity的启动耗时、数据库操作耗时统计、对象被锁定时间、AIDL调用时间、Activity和Service的生命周期及其在内存中使用频率等等,详见

    3、Packages
    ChkBugReport解析bugreport中存储的packages.xml并展示一系列的packages、user ids和 permissions。参见

    4、Processes
    操作app过程中产生的系统事件日志、内存使用信息等等,参见

    5、Battery statistics
    电池使用统计信息,参见

    6、CPU Frequency statistics
    CPU频率统计信息,参见

    7、Raw data
    被分割成小段的原始数据

  • 相关阅读:
    系统设计与架构笔记:对我新公司网站的技术架构初解
    与国内某知名互联网公司交流后的心得
    系统架构:Web应用架构的新趋势---前端和后端分离的一点想法
    为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
    我设计的网站的分布式架构
    Python Day 46 前端 、HTML5介绍、HTML标签、标签的嵌套规则、CSS3介绍、CSS代码中书写位置(重点)、CSS基础选择器、
    Python Day 45 手撸ORM框架
    Python Day 44 Mysql数据库备份及优化(六)
    Python Day 43 Mysql基础语法(五)sqlalchemy、创建表、增删改查、高级查询操作、正向反向查询
    Python Day 42 Mysql基础语法(四)、存储引擎、索引、慢日志查询、普通日志记录(general log)、权限管理、explain工具
  • 原文地址:https://www.cnblogs.com/qvchuang/p/monkey.html
Copyright © 2020-2023  润新知