monkey的基本使用

article/2025/10/6 3:29:54

一、monkey介绍

   1.功能:采用伪随机测试的方式,来完成app的稳定性测试

   2.执行原理:通过monkey的shell脚本去执行安卓系统中自带的monkey.jar工具

   3.通常用于盲测,压力测试和冒烟测试

      1)盲测:忽略功能和业务逻辑进行随意的测试

      2)压力测试:通过长时间的高频操作,测试app在测试机上运行的性能

      另外:压测仅仅靠monkey是不够的,还需要别的工具,如Jmeter

      3)冒烟测试:在进行功能测试之前,通过monkey测试app的基本可用性

   4.局限性:无法遵循功能逻辑进行自动化测试,因此不能将其用于通常的功能自动化

二、adb介绍和环境搭建:

   1.我们需要安装adb,用pc在手机上调用monkey的shell脚本,去执行monkey.jar

   2.adb是一个C/S架构的命令行工具,主要由3部分组成

   

3. windows系统环境搭建:

   1)下载SDK:解压到不包含中文和空格的目录下

   2) 管理SDK内容:运行SDK MANAGER,安装platform-tools.tools以及需要的API版本及对应的build-tools

   3) 配置环境变量:将platform-tools路径添加到环境变量path中

   4)adb版本查看:adb version

   

4. mac系统环境搭建+快速测试

 1)执行命令:brew install android-platform-tools  ,安装工具包,该工具包中包含工具adb

 2)执行命令:adb devices,检查adb是否安装成功

 3)执行命令:adb shell pm list package -3,获取要测试的第三方应用包名

 4)执行命令:adb shell monkey -p 包名 -v -v -v --throttle 300 500 >android_monkey_test.txt ,执行monkey测试(详情参照三中的“monkey命令介绍”)

 5)把以上命令放在文件monkey.sh中,然后在命令行工具直接输入该文件绝对路径或者拖拽文件到工具中,然后按“Enter”键直接执行文件即可执行命令

优点:直接在文件中修改命令即可

三、monkey命令介绍:

   1、命令执行方式:adb shell monkey

   

   2、常用属性:

      1)-p 选择包名(--pkg-whitelist-file 白名单)

      2)-v 指定日志级别,一般用-v -v -v指定3级的详细日志

      3)-s 随机事件的种子数,种子数相同则生成相同随机操作序列

      4)--throttle 操作的延时

      5)count 执行次数(该参数必须带上)

   3.获取app包名的命令:adb shell pm list package -3

   其中-3代表第三方应用(即不是安卓自带的应用)

   4.指定某app进行测试:

      1)该app包名为:com.timeweekly.timefinance

      2)输入命令:adb shell monkey -p com.timeweekly.timefinance -v -v -v --throttle 300 500 >E:\MonkeyLog\timeweekly.txt

      其中adb shell monkey 表示完成对安卓系统中命令的调用;

      -p com.timeweekly.timefinance 表示指定了某个app的包名;

      -v -v -v 表示指定3级日志;

      --throttle 300 表示延时时长;

      500 表示执行次数(一般跑上万次);

      >E:\MonkeyLog\timeweekly.txt 表示把日志内容放在E盘,MonkeyLog文件夹下的timeweekly.txt文件里。

四、日志分析:

   1、正常结束后,日志结尾一般能看到//Monkey finished;但是系统崩溃后,不一定能看到该结尾

   2、app无响应时日志文档结尾出现:Monkey aborted due to error

   3.一般在日志中查询关键字:exception、crash和error

      1)exception:定位错误提示信息,给开发看,让开发改bug

      2)crash:崩溃问题

      3)anr(application not responding):应用程序未响应

   4、当出错后,有可能是机型的兼容性问题,也有可能是app的问题

   5、出错类型举例:比如多次点击某个按钮,出现空指针错误

五、高级参数的应用:

   1、--ignore [事件类型] 若某些事件导致monkey脚本终止,可以该参数忽略问题,继续执行monkey,而不中途退出

 

      一般要加上crash和timeouts。因为公司实际执行monkey时,通常跑几个小时或者几天,若出错,测试人员无法及时得知,一般都是跑完才去看。所以加上忽略事件就很有必要

命令:adb shell monkey -p com.timeweekly.timefinance --throttle 200 --ignore-crashes --ignore-timeouts -v -v -v 10000 >E:\MonkeyLog\20190401.txt

  日志:操作10000次,运行了约8分钟

 

2、--pct [操作类型] [该操作所占的百分比] 指定某类操作的百分比,让monkey只做或者不做某一类操作

   比如:--pct -touch 100 仅做触摸操作

   

   3、用monkey的种子编号(seed)去复现操作(-s seed序列),记得要关闭app后再执行该命令

   

4、当测试机有多个时,用 -s + 设备名称 选择某测试机进行测试:

先用adb devices查看所有已连接的设备

命令:adb -s emulator-5554 shell monkey -p com.timeweekly.timefinance --throttle 200 --ignore-crashes --ignore-timeouts -v -v -v 100 >E:\MonkeyLog\20190401-multiDevices.txt


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

相关文章

Monkey使用详解

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

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

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

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

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

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

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

Clumsy弱网、丢包测试工具

一、下载clumsy安装包,解压后打开clumsy.exe 二、ping www.baidu.com查看是否模拟成功 三、pc端模拟丢包和网络延迟 四、APP端模拟丢包和网络延迟 1.手机连接抓包工具charles 2.打开clumsy,在过滤器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 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包…

使用clumsy模拟网络延迟

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

[测试]Clumsy网络模拟工具

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

curle(curley)

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

网络抖动工具clumsy

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

网络丢包工具clumsy

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

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

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

弱网测试工具 clumsy

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

Clumsy的使用方法

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

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

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

Clumsy

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

clumsy使用简介(模拟弱网)

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

使用 clumsy 模拟极端网络状况

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

clumsy使用简介

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