monkey工具详解

article/2025/10/6 21:56:55

第一部分:背景

1.为什么要开展压力测试?

提高产品的稳定性

提高产品的留存率

2.什么时候开始压力测试?

首轮功能测试通过后

下班后的夜间进行

第二部分:理论

1.什么是monkey

Monkey是发送伪随机用户事件的工具;

2.monkey在那里?

在手机系统里,为了跟monkey进行通信,要借用adb

3.什么是adb

Android debgu bridge

monkeyScript

4.什么是MonkeyScript

monkeyScript是一组可以被monkey识别的命令集合

Monkeyscript可以完成重复固定的操作;

monkeyRunner

5.什么是monkeyRunner

monkeyRunner提供了一系列的API

monkeyRunner可以完成模拟事件及截图操作

6.monkeymonkeyRunner的区别

Monkey:在adb shell中,生成用户或系统的伪随机事件;

monkeyRunner:通过API定义特定命令和事件控制设备;

7.monkeyRunner APIs

monkeyRunner:用来连接设备或模拟器

monkeyDevice:提供安装、卸载应用,发送模拟事件;

monkeyImage:完成图像保存,以及对比的操作;

8.monkeyrunner的 测试类型

多设备控制  功能测试  回归测试

9.压力测试结果

1)crash:崩溃,应用程序在使用中非正常退出;

2)Anrapplication not responding无响应

第三部分:实践

1.准备测试环境

准备Android sdk环境    http://www.android-studio.org/

准备Python环境        https://www.python.org/downloads/     2.7

2.一个app的压测实践

压测过程step1

在手机开发者选项中,将usb调试选上

压测过程Step2

确认手机和电脑已经成功连接   使用命令adb devices 进行确认

压测过程Step3

安装测试app,使用命令adb install package.apk

压测过程Step4

发送压测指令,使用adb shell monkey 1000

1000告诉monkey帮助完成1000个指令,包括home键,滑屏减等等;

 

 

压测过程Step5

获取app包名,使用命令adb logcat|grep START

|Linux下代表把上一个命令的输出作为下一个命令的输入

Grep start表示抓取日志中包含有start标签的输出

 

###查找包名和activity

  A. Windows上使用adb logcat | find /I "START" 查找

      B.清除logcat内容,使用命令adb logcat -c

启动logcat,使用命令adb logcat AcitivityManager:I*:s

启动查看程序

 

C. Adb logcat >d:/111.log

D:adb -s LE67A06140256238 shell pm list packages | find /I "LETV"

 

压测过程Step6

给指定包打压力

Adb shell monkey -p package 1000

3.monkey高级参数的应用

 1throttle参数

指定事件之间的间隔(毫秒)

Adb shell monkey --throttle <milliseconds>

 2seed参数

指定随机生成数的seed值,如果两次seed值一样那操作结果也是一样的

Adb shell monkey -s <seed> <event-count>

Adb shell monkey -s 100 50  seed值为100,执行50个事件

 3)触摸事件(只要求monkey完成点击事件,滑动,音量键,主导行键)

设定触摸事件百分百

Adb shell monkey --pct-touch <percent>

再此基础上添加-v参数会把做的事件都列出来

Adb shell monkey -v -p 包名 --pct-touch 100 99  占百分百的点击事件,完成99事件

 

事件都是成对出现的

 

 

4)动作事件

设定动作事件百分比(这里的百分比和其他事件的百分比之和要等于100,如果不等于100就会把剩余部分的比例进行随机操作)

Adb shell monkey --pct-motion<percent>

Adb shell monkey -v -p 包名 --pct-touch 50 --pct-motion 30 100  touch事件50%motion事件30%,执行100个事件

 

Adb shell monkey -v -p 包名 --pct-touch 50 --pct-motion 50 100

 

5)轨迹球事件

设定轨迹球事件百分比

Adb shell monkey --pct-trackball <percent>

6)基本导航事件

设定基本导航事件百分比,输入设备的上下左右

Adb shell monkey --pct-nav <percent>

7)主要导航事件(软件盘上的导航键)

设定主要导航事件百分比,兼容中间键,返回键,菜单按键

Adb shell monkey --pct-majornav <percent>

8)系统导航事件(跟硬件相关)

设定系统导航事件百分比,homeback,拨号,音量键

9)启动activity事件

设定启动activity的事件百分比

Adb shell monkey --pct-appswitch <percent>

10)不常用事件

设定不常用事件的百分比

Adb shell monkey --pct-anyevent <percent>

11)崩溃事件

忽略崩溃和异常

Adb shell monkey --ignore-crashes <event-count>

12)超时事件anr

忽略超时事件,知道完成指定的事件数

Adb shell monkey --ignore-timeouts <event-count>

Adb shell monkey -v -p 包名 --pct-touch 50 --pct-motion 50 --ignore-crashes

--ignore-timeouts 100 如果出现anrcrash继续完成知道完成100个事件

4.crash结果分析

实践过程:

Step1:安装可以引起crashapp

Adb install apk.apk

Step2:执行压力命令

adb logcat | grep START  点下要测试的app会输出包名

Adb shell monkey -p包名 1000


Step3:分析crashexception信息

 

 

把这些crash信息发给研发;

 

 

重现问题使用seed值:Adb shell monkey -p包名 -s 1468814836964 1000

如果使用忽略anrcrash时没有seed值;

5.anr结果分析

  实践过程

Step1:安装可以引起anrapp

Step2:执行压力命令

Step3:分析anrexception信息

 

手动找到anrlog的信息

Adb shell 进入手机

Cd /data/anr/    有一个traces.txt

如果出现anr了会抛出一条信息,这条信息会在traces.TXT的最上面部分


重要:

1.adb无法使用,提示error:unknown host service的解决办法,需要辨别电脑的5037端口被哪个应用程序占用的方法:(使用adb时需要5037端口是空闲的)

 

1打开命令行,输入命令:netstat -ano |findstr "5037"


2tasklist /fi "pid eq 6728"


3taskkill /pid 6728 /f  可停止占用的进程



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

相关文章

monkey的基本使用

一、monkey介绍 1.功能&#xff1a;采用伪随机测试的方式&#xff0c;来完成app的稳定性测试 2.执行原理&#xff1a;通过monkey的shell脚本去执行安卓系统中自带的monkey.jar工具 3.通常用于盲测&#xff0c;压力测试和冒烟测试 1&#xff09;盲测&#xff1a;忽略功能和业务逻…

Monkey使用详解

App monkey 使用篇 安装包下载&#xff1a; 下载mumu模拟器地址&#xff1a;http://mumu.163.com/baidu/ 下载adb安装包 地 址&#xff1a;http://www.downza.cn/soft/219906.html Adb环境变量 配 置&#xff1a;在path里新建adb安装路径即可。 cmd 打开命令提示符窗口输入&a…

monkey的基本定义及基本使用(菜鸟学习中)

一.monkey的定义 1.(转自 https://blog.csdn.net/beyond_f/article/details/78543070 ) Monkey程序由Android系统自带&#xff0c;使用Java语言写成&#xff0c;在Android文件系统中的存放路径是&#xff1a;/system/framework/monkey.jar&#xff1b; Monkey.jar程序是由一…

Android测试--monkey详细到炸的总结

一、Monkey简介&#xff1a; Monkey是Android中的一个命令行工具&#xff0c;可以运行在模拟器里或者现实设备中&#xff0c;向系统发送伪随机的用户事件流&#xff08;点击、滑动、Application切换、横竖屏、应用关闭&#xff09;实现对正在开发的应用程序进行压力测试。monk…

APP稳定性测试利器 Monkey介绍、实战使用、日志分析

第一、Monkey简介 Monkey是什么&#xff1f; Monkey 是安卓官方提供的一个命令行工具&#xff0c;可以运行在Android模拟器和实体手机上。通过Monkey 来模拟用户的触摸、点击、滑动、系统按键的操作&#xff0c;来对APP进行压力测试、稳定性测试。换句话说&#xff0c;就是在乱…

Clumsy弱网、丢包测试工具

一、下载clumsy安装包&#xff0c;解压后打开clumsy.exe 二、ping www.baidu.com查看是否模拟成功 三、pc端模拟丢包和网络延迟 四、APP端模拟丢包和网络延迟 1.手机连接抓包工具charles 2.打开clumsy&#xff0c;在过滤器filtering中输入outbound and ip.DstAddr 192.168.…

【弱网】clumsy的filter语法设置

clumsy 官方说明 jagt WinDivert 的语法 https://github.com/basil00/Divert/wiki/WinDivert-Documentation#7-filter-languageDivert大神们的改版 clumsy-regoutbound 发送 inbound

弱网测试工具clumsy

clumsy 能在 Windows 平台下人工造成不稳定的网络状况&#xff0c;方便你调试应用程序在极端网络状况下的表现。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来&#xff0c;人工的造成延迟&#xff0c;掉包…

使用clumsy模拟网络延迟

为何模拟网络延迟 由于最近打算做及时对战类的游戏&#xff0c;对于及时对战类的游戏&#xff0c;首先要解决的问题就是网络延迟的问题。网络延迟对于游戏的体验至关重要。那么开发一款网络游戏要怎么解决这一问题呢。想要解决网络延迟&#xff0c;首先就要模拟网络延迟。那么…

[测试]Clumsy网络模拟工具

笔者最近因为需要在局域网内模拟一个实际情况&#xff08;即存在丢包、延迟等情况&#xff09;。网上搜了很多工具&#xff0c;大多基于linux。后来好不容易在网上搜索到一款2014年出现的网络模拟工具----Clumsy。 &#xff08;参考了http://jagt.github.io/clumsy/&#xff09…

curle(curley)

Queen Elizabeth is afraid of Mary. Bess Curle wrote the story. 这两句什么意思&#xff1f; 伊丽莎白女王害怕玛丽&#xff0c;Bess Curle写(说)出了这个道理。(这里的story成为道理&#xff0c;事实意义&#xff0c;不再只是故事的意思)&#xff0c;希望对你有帮助&#x…

网络抖动工具clumsy

网络抖动工具clumsy 下载与安装 下载地址&#xff1a;https://download.csdn.net/download/Asia1752/85192646 使用 说明&#xff1a; 1、Lag(延迟)&#xff0c;把数据包缓存一段时间后再发出&#xff0c;这样能够模拟网络延迟的状况。 2、Drop(掉包)&#xff0c;随机丢弃一…

网络丢包工具clumsy

以webrtc为例&#xff0c;未开始前 设置丢包率10%后&#xff0c;丢包会增加&#xff0c;如下图&#xff1a; Lag是延迟。设置后&#xff0c;增加网络延迟

Windows下网络环境模拟工具-Clumsy

公司设备需要模拟在弱网(如&#xff1a;延迟、丢包)环境下进行数据的传输&#xff0c;网上看资料找到一款工具Clumsy( 文章出处&#xff1a;Clumsy-Windows下网络环境模拟工具_clumsy工具_Hello&#xff0c;C&#xff01;的博客-CSDN博客),安装进行模拟&#xff0c;基本可以满足…

弱网测试工具 clumsy

clumsy工具介绍 clumsy 能在 Windows 平台下人工造成不稳定的网络状况&#xff0c;方便你调试应用程序在极端网络状况下的表现。下面根据工作中遇到过的实际场景介绍一下clumsy工具的使用方法。 下载安装&#xff1a;clumsy下载链接 场景&#xff1a;测试客户端下载文件失败&…

Clumsy的使用方法

Clumsy的使用方法&#xff1a; 1、 解压clumsy-0.2-win64.zip&#xff08;下载地址&#xff1a;https://files-cdn.cnblogs.com/files/nimq/clumsy-0.2-win64.zip&#xff09;注&#xff1a;只适用于Windows 64位电脑&#xff0c;其他系统版本需要下载适配的版本 2、 打开clu…

Clumsy-Windows下网络环境模拟工具

下载页 http://jagt.github.io/clumsy/cn/download 项目的代码可以在github上获取&#xff0c;在下载页面有编译好的版本。强烈建议在使用前花点时间阅读一下文档&#xff0c;来 了解 clumsy 的功能和限制。 目前的实现中有一些难以绕过的限制和问题&#xff0c;列表如下&…

Clumsy

笔者最近因为需要在局域网内模拟一个实际情况&#xff08;即存在丢包、延迟等情况&#xff09;。网上搜了很多工具&#xff0c;大多基于linux。后来好不容易在网上搜索到一款2014年出现的网络模拟工具----Clumsy。 &#xff08;参考了http://jagt.github.io/clumsy/&#xff09…

clumsy使用简介(模拟弱网)

前提&#xff1a;使用过Fiddler弱网模式的小伙伴&#xff0c;应该都体会过&#xff0c;模拟弱网的时候&#xff0c;只是均匀的慢&#xff0c;但是实际场景可能是网络会波动的&#xff0c;而clumsy不但能设置延迟&#xff0c;还能设置节流、重发、乱序等模式&#xff0c;有助于我…

使用 clumsy 模拟极端网络状况

clumsy 能在 Windows 平台下人工造成不稳定的网络状况&#xff0c;方便你调试应用程序在极端网络状况下的表现。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来&#xff0c;人工的造成延迟&#xff0c;掉包…