西雅图

11°

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.打开log\bugreport_out\index.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
被分割成小段的原始数据

posted @   者諹  阅读(965)  评论(2编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示