android测试-monkey测试

article/2025/10/17 11:49:30

文章目录

  • 前言
  • 一、为什么Monkey测试
  • 二、什么是Monkey测试
  • 三、如何做monkey测试


前言

Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;
通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样,不知道程序的任何用户交互方面的知识,就对界面进行无目的、乱点乱按的操作;
Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法;
Monkey 程序是 Android 系统自带的,由 Java 语言写成,在 Android 文件系统中的存放路径是: /system/framework/monkey.jar;
Monkey 程序需要通过 adb 来运行。

一、为什么Monkey测试

1、用户量比较大
2、用户的时间比较长

压力测试、稳定性测试
压力测试:在一定时间内进行大量操作
稳定性测试:趋势

进行monkey测试的阶段
功能基本稳定,项目验收前

二、什么是Monkey测试

操作:随机的,针对整机,模拟人操作(调节亮度、声音、去截屏设置)、伪随机(有逻辑)

monkey位置:系统中文件夹,/system/bin/monkey

monkey优点:
1)一条语句就是一个自动化脚本
2)有log输出
3)速度可控
4)长时间测试稳定(adb稳定)
缺点
1)无法回溯路径
2)log信息量巨大,难以排查bug

三、如何做monkey测试

1、基本环境准备
1)电脑设置
jdk、sdk准备好
环境变量 java --version
sdk压缩,解压缩即可使用 adb version

2)手机端
打开开发者模式->USB调试

3)手机(模拟器)连接adb成功
adb连接成功 adb devices

2、执行monkey测试
整机测试,200是count(必填)

adb shell monkey 200

1)连接模拟器

192:~ yingyan$ adb connect 127.0.0.1:62001

2)查看是否成功

192:~ yingyan$ adb devices
List of devices attached
127.0.0.1:62001	device

3)执行monkey测试
查看monkey相关参数

192:~ yingyan$ adb shell monkey
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...][-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...][--ignore-crashes] [--ignore-timeouts][--ignore-security-exceptions][--monitor-native-crashes] [--ignore-native-crashes][--kill-process-after-error] [--hprof][--pct-touch PERCENT] [--pct-motion PERCENT][--pct-trackball PERCENT] [--pct-syskeys PERCENT][--pct-nav PERCENT] [--pct-majornav PERCENT][--pct-appswitch PERCENT] [--pct-flip PERCENT][--pct-anyevent PERCENT] [--pct-pinchzoom PERCENT][--pct-permission PERCENT][--pkg-blacklist-file PACKAGE_BLACKLIST_FILE][--pkg-whitelist-file PACKAGE_WHITELIST_FILE][--wait-dbg] [--dbg-no-events][--setup scriptfile] [-f scriptfile [-f scriptfile] ...][--port port][-s SEED] [-v [-v] ...][--throttle MILLISEC] [--randomize-throttle][--profile-wait MILLISEC][--device-sleep-time MILLISEC][--randomize-script][--script-log][--bugreport][--periodic-bugreport][--permission-target-system]COUNT

具体例子

1、针对整机进行200次事件操作

adb shell monkey 200

如何看包名?
-s 系统
-3 客户

192:~ yingyan$ adb connect 127.0.0.1:62001
connected to 127.0.0.1:62001
#查看报名 adb shell pm list packages
192:~ yingyan$ adb shell pm list packages -3
package:com.sankuai.meituan
package:com.mt.mtxx.mtxx
package:com.tencent.mobileqq

点击哪个就显示哪个包名(有时app卡死,不建议用)
adb shell am monitor

2、对指定应用进行200次的事件操作

192:~ yingyan$ adb shell monkey -p com.sankuai.meituan 200

3、忽略参数
[–ignore-crashes]
[–ignore-timeouts]
如果使用该参数,则执行中发生了崩溃或者anr的问题,会结束app,重新启动执行操作,继续之前的事件数,而且会在日志中记录该问题。
[–ignore-security-exceptions] 安全证书

4、序列
[-s SEED]序列值、种子值 如果两次monkey命令执行一样的seed值,那么表示操作的流程是一样的,但是操作的界面或者对象是否一样就不能保证
[-v [-v] …] 日志的级别程度 -v -v -v 最详细的日志体现

5、延迟时间(两个操作的间隔时间,模拟人操作要有停顿)
[–throttle MILLISEC] 延迟时间,单位:毫秒 450
工作中的事件数 35万次 +延迟时间,8-10小时

例子:
adb shell monkey + 行为参数 + “>” + {日志保存路径}

adb shell monkey -p com.xxx.myapp --throttle 100 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1000000 > d:\mylog.log

结果分析
1、//monkey finished表示测试成功,其他情况都是失败,需要提交bug
1)crash崩溃 logcat
2)anr 无响应 adb shell /data/anr/traces.txt
3)monkey测试没有完成,异常中断
4)关机
5)重启reboot

2、结果查看
1)进行mokey测试,可以看到进行事件的百分比(这个需要开发文档查看)比如:tag、touch…
在这里插入图片描述

bug提交:专项测试
标题:[monkey][CRASH/anr/重启/关机]app在执行mongkey测试是发生问题
步骤
1、准备
2、命令
3、查看结果
预期结果
执行monkey无异常
实际结果
日志信息[来源于logcat]
fatal、exception、reboot、oom、anr
03-02 21:54:39.508 I/art ( 5815): Wrote stack traces to ‘/data/anr/traces.txt’

发现anr,需要把数据pull到本地,然后再给开发定位

192:~ yingyan$ adb pull /data/anr/traces.txt /Users/yingyan/Desktop/adb/log/
/data/anr/traces.txt: 1 file pulled, 0...ed. 41.3 MB/s (294529 bytes in 0.007s)
部分参考:https://blog.csdn.net/weixin_37124805/article/details/122846710?ops_request_misc
推荐:看详细参数解析,可以看上面链接

http://chatgpt.dhexx.cn/article/PjwDkFNa.shtml

相关文章

Monkey测试工具使用

目录 1.monkey测试原理 2.Monkey启动架构图 3.Monkey为什么是Android测试工具原理解析 4.Monkey命令 5.Monkey日志分析 1.monkey测试原理 monkey是向系统发送一系列的伪随机的用户事件流,这些事件流包括:按键输入、触摸屏输入、手势输入。实现对应用程…

Android Monkey测试入门:安装sdk、studio、模拟器,并分析monkey日志

Android Monkey测试入门:安装sdk、studio、模拟器,并分析monkey测试报告结果 1. 安装Java JDK和android SDK2. 安装Andriod studio及模拟器3. 在模拟器上运行monkey测试3.1 手动植入简单缺陷 4. 分析monkey报告结果信息4.1 标准流4.2 错误流 5. 导出ANR文…

python+monkey实现app的monkey测试

目标: 使用monkey对当前windows电脑连接的一个或者多个手机设备,完成对某个app的monkey测试,输出monkey日志以及monkey脚本。思路: 通过terminal交互控制台,获取测试的app以及可以测试的设备。将获取的参数和固定的mo…

最全的monkey测试过程及分析

一、首先第一步安装Android SDK,完成后。编写测试脚本,我的脚本已经编写好。具体大家可以从网上Google针对自己的情况再进行详细的编改。 ECHO OFFECHO.:::::::::::::::::::::::::::::::::::::::::::::::::ECHO.:: 分析Monkey日志 …

【monkey】monkey测试入门

目录 一、安装 二、真机或者模拟器 三、基本命令 (一)基础参数 (二)调试选项 四、 停止命令 五、测试结果分析 (一) 初步分析方法 (二)一般的测试结果分析: 一、…

Monkey测试个人笔记

安卓monkey简介 Monkey是一款安卓自带的、java编写的app自动化测试工具,monkey是猴子的意思,所以从原理上说,它的自动化测试就类似猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey原理也是类似,…

monkey测试工具

Monkey的概念: “猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的…

Monkey的测试原理和方法

参考资料:http://blog.csdn.net/io_field/article/details/52189972 一、Monkey测试原理:Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等)&#xf…

iOS端Monkey测试

说起Monkey测试,大家想到的是monkey测试只有安卓有,monkey测试只针对安卓app,今天给大家分享一下Monkey测试在iOS端也能跑!iOS端app也能使用Monkey测试来执行稳定性测试。 一、环境准备 1、准备Mac设备,并安装xcodeI…

Monkey测试工具详解

Monkey测试工具简介: Monkey是Android SDK 中附带的一个工具;Monkey测试的原理:利用socket通讯(Android客户端和服务器以TCP/UDP方式)的方式来模拟用户的按键输入、触摸屏输入、手势输入等;Monkey测试的…

Android Monkey测试

monkey通常用于对app进行压力测试,通过monkey工具在模拟器或设备中产生类似用户点击、触摸、手势等一些系统级的伪随机事件流以测试app的稳定性,这好比一只猴子随意操作设备。 一、monkey原理 monkey是一个用java编写的脚本,设备中存放在sy…

Monkey测试全过程

1.monkey测试的概念 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性…

Monkey测试(APP稳定性)

目录 1、Monkey简介 2、monkey程序介绍 3、Monkey测试前准备 4、Monkey测试命令 5、 Monkey测试结果(pass或者fail)的判断 6、Monkey Log的简单分析 7、汇总如图 1、Monkey简介 Monkey是Androld中的一个命令行工具,可以运行在模拟器里…

monkey 测试介绍

目录 前言 环境搭建 什么是Monkey Monkey 用来做什么 Monkey程序介绍 Monkey 架构 Monkey弱点 Monkey 参数大全 Monkey 命令 基本参数介绍 Monkey 实例 Monkey 查看包名 Monkey 日志分析 必须重视Crash 前言 Monkey 是Android SDK提供的一个命令行工具&#xff0…

一个简单的monkey测试工具

Monkey的概念: “猴子测试”是指没有测试经验的人甚至对计算机根本不了解的人(就像猴子一样)不需要知道程序的任何用户交互方面的知识,如果给他一个程序,他就会针对他看到的界面进行操作,其操作是无目的的…

monkey测试详解

一、monkey测试的定义 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&…

Monkey测试

一、什么是 Monkey 测试 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&a…

使用Monkey进行软件测试(随机测试+脚本测试)

文章目录 一、基础概念二、monkey测试的优缺点2.1 优点2.2缺点2.3 解决方案2.3.1 二次开发2.3.2 指定测试页面2.3.3 调整各种事件的比例2.3.3 编写自定义测试脚本2.3.4 分析APP特性,选择合适的方案 三、monkey测试的基本过程3.1 环境准备3.1.1环境3.1.2 配置过程 3.…

【Monkey测试】Monkey测试详解

一、什么是 Monkey 测试 Monkey 测试是通过向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对应用程序客户端的稳定性测试;通俗来说,Monkey 测试即“猴子测试”,是指像猴子一样&a…

Linux 的 Kill -9命令

大家对kill -9 肯定非常熟悉,在工作中也经常用到。特别是你去重启tomcat时。 可是多半看来,我们对-9的理解只是表面而已。 很少有人(包括我)认真的去了解一下 kill -n 这个n到底是什么东东。自我批评一下。 好吧。我们来好好的认识…