monkey--介绍
前戏
monkey程序是android系统自带的,其启动脚本是位于android系统的/system/bin目录的monkey文件,其jar包是位于android系统的/system/framework目录的monkey.jar文件。用户主要是通过adb命令来启动monkey的,monkey在运行时,会根据命令行参数的配置,生成伪随机的事件流,并在android设备上执行对应的测试事件。同时,monkey还会对测试系统进行监测,当出现以下情况会进行特殊处理
1.如限定了monkey在特定包上,当监测到试图转到其他包的操作,将对其进行阻止。
2.如应用程序崩溃或接受到任何失控异常,monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
3.如果程序发生了程序无响应的错误,monkey将记录对应的错误日志,并根据命令行参数判断是停止运行还是继续运行。
启动monkey
monkey启动步骤
1.连接移动设备
2.连接成功后输入命令:adb shell
3.进入到指定目录:cd /system/bin
4.输入monkey看到以下信息说明启动成功

执行monkey命令:退出shell才能执行
monkey命令格式如下:
adb shell monkey [options] <event-count>
[options]是指monkey可传入的参数,是可选项(如果不指定monkey将以无反馈方式启动,并把事件任意发送到安装目标环境中的全部包)
<event-count>是指随机发送事件,如:输入100就是执行100个伪随机事件,为必选项
monkey事件
monkey所执行的随机事件流中包含11大事件,分别是触摸事件,手势事件,二指缩放事件,轨迹事件,屏幕旋转事件,基本导航事件,主要导航事件,系统按键事件,启动activity事件,键盘事件,其他类型事件,monkey通过这11大事件来模拟用户的常规操作,对手机进行app稳定性测试。
1.触摸事件
触摸事件是指在屏幕某处按下并抬起的操作,可通过
--pct-touch参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到,该事件由一组Touch(ACTION_DOWN)和Touch(ACTION_UP)事件组成,在手机上看到
类似操作如点击
2.手势事件
手势事件是指在屏幕某处的按下,随机移动,抬起的操作,既直线滑动操作,可通过--pct-motion参数来配置其事件百分比。该事件是有一个ACTION_DOWN事件,一系列
ACTION_MOVE事件和一个ACTION_UP事件组成的,在手机上看到的实际操作是一个没有拐弯的直线滑动操作。
3.二指缩放事件
二指缩放事件是指在屏幕的两处同时按下,并同时移动,最后同时抬起的操作,既智能机上的放大缩小手势操作。可通过--pct-pinchzoom参数来配置事件百分比,从monkey执行该
事件对外输出的日志可以看到:
该事件起始是由一个ACTION_DOWN事件和一个ACTION_POINTER_DOWN事件,既模拟两个手势同时按下,中间是一系列的ACTION_MOVE事件,既两个手势同时在屏幕上直线
滑动,结束是由一个ACTION_POINTER_UP事件和一个ACTION_UP事件组成的,既两个手指同时放开
4.轨迹事件
轨迹事件是由一个或多个随即的移动组成的,有时会伴随着点击,很早之前的android手机带有轨迹球
,这个事件就是模拟轨迹球的操作,现在的手机几乎都没有轨迹球,但轨迹球事件中包含曲线滑动操作,如果被测程序需要曲线滑动时可以选用此参数,可通过--pct-trackball参数来配置事件百分比,从monkey执行该事件对外输出的日志可以看到该事件是由一系列的Trackball(ACTION_MOVE)事件组成的,观察手机上的操作,即为一系列的曲线滑动操作
5.屏幕旋转事件
屏幕旋转是一个隐藏事件,在android官方文档中并没有记录这个事件,它其实是模拟的android手机的横屏和竖屏切换,可通过--pct-rotation参数来配置其事件百分比,从monkey执
行该事件对外输出的日志可以看到:该事件由一个rotation事件组成,其中degree表示的是旋转方向,顺时针旋转,0表示旋转90度的方向,1表示旋转180度的方向,2表示旋转270
度的方向,3表示旋转360度的方向。在执行过程中,可以看到手机屏幕在横竖屏之间不断的切换
6.基本导航事件
基本导航事件是指点击方向输入设备的上、下、左、右按键的操作,现在手机上很少有上下左右按键,这种事件一般用的比较少,可通过--pct-nav参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到:该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的就是上下左右四个方向按键
7.主要导航事件
主要导航事件是指点击“主要导航”按键的操作,这些按键通常会导致UI界面中的动作,如键盘的中间键、回退按键、菜单按键,可通过--pct-majornav参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到:该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的按键就是中间键和菜单键
8.系统按键事件
系统按键事件是指点击系统保留使用的按键的操作,如点击Home键,返回键,音量调节键等,可通过--pct-syskeys参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到:该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的按键就是上面所说的几个系统按键
9.启动activity事件(一个activity就是一个页面)
启动activity事件是指在手机上启动一个activity的操作,在随机的时间间隔中,monkey将执行一个startActivity()方法,作为最大限度上覆盖被测包中全部Activity的一种方法,可通过--pct-appswitch参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到:该事件是由一个Switch操作组成的,从手机上看,上面的操作实际上是打开了com_android_setting这个应用中的一个com.android.settings.Settings的Activity界面
10.键盘事件
键盘事件主要是一些与键盘相关的操作,比如点击输入框,键盘弹起,点击输入框以外区域,键盘收回等,可通过--pct-flip参数来配置其事件百分比
11.其他类型事件
其他类型事件包含了除前面10种以外的其他事件,如按键,其他不常用的设备上的按钮,可通过--pct-anyevent参数来配置其事件百分比,从monkey执行该事件对外输出的日志可以看到:该事件是由一个Key(ACTION_DOWN)和一个Key(ACTION_UP)组成的,点击的按键为一些系统按键,如字母按键,数字按键等,因为现在手机很少带字母按键或数字按键,所以这个事件一般使用的比较少
monkey--介绍的更多相关文章
- Android monkey介绍
Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...
- 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志
漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...
- monkey介绍及常用命令
前置准备: adb:用来连接安卓手机和PC端的桥梁,要有adb作为两者之间的维系,才能在电脑对手机进行全面的操作.(adb push 文件路径 到手机路径 adb pull 从手机拉取到电脑) mo ...
- [原创]Android Monkey测试工具使用介绍
[原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...
- Android APP压力测试(二)之Monkey信息自动收集脚本
Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息 ...
- monkeyscript - 定制化monkey流程
作为移动端测试必须掌握的初级Android稳定性工具:monkey,提到它时,脑海里一般涌现出两句话: 1.我会用,很简单 就是一行命令,一回车就开始跑起来了 2.使用问题多,不好用 太随机,很多操作 ...
- android之monkey测试
本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...
- Monkey测试log的保存与分析
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- Android初体验之Monkey和MonkeyRunner
原文地址https://blog.csdn.net/mad1989/article/details/38087737 Monkey 什么是Monkey Monkey是Android中的一个命令行工具, ...
- Monkey、Monkeyrunner之间的区别
Monkey.Monkeyrunner之间的区别 一.Monkey Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输 ...
随机推荐
- Python2.x升级python3.x【升级步骤和错误总结】
网上帖子一大堆,按照那些教程操作,确实可以成功安装.但是安装成功之后呢,pip还是用的python2的pip. 切换到python3的pip之后,发现无法下载模块,还会有很多报错信息.以及" ...
- TPM(ThinkPHPMobile)使用简明教程
TPM还有很多特性,它不仅能和ThinkPHP结合,也可以结合自己已有的接口.还有一些附件插件帮助我们实现一些常用功能 一.基础知识 1 手机APP的类型 移动端的应用有这几种:WebApp,Nati ...
- linux centos7下源码 tar安装mysql5.7.22或mysql5.7.20 图文详解
之前用的rpm安装的每次安装都是最新的,,,导致每次版本不统一... 现在用tar包安装5.7.22和5.7.20一样的 5.7.20之后的和之前的版本还是有点不一样的 官网地址 https:// ...
- 用pyenv管理Python多版本及下载加速方法--Mac上
原文:https://www.jianshu.com/p/91fc7ecc5e46 先大致介绍下pyenv的安装及配置流程.随后介绍加速下载方法 安装: brew install pyenv 配置 在 ...
- 【linux】linux磁盘空间 目录查看清理 和 文件查看清理
=========================大目录排查============================= 一.首先查看磁盘挂载,磁盘空间使用情况 1.进入根路径 cd / 2.查看磁盘挂 ...
- c# 对XML进行数字签名并且让java验签成功
实现: 1.c#将xml报文做数字签名发送到java服务,java服务成功验签. 2.c#服务对收到java服务推送的xml报文成功验签. 前提: 1.java服务要求 遇到问题: 1.Java和.n ...
- C# 文件操作总结
一.需求分析 1.将信息记录到本地记事本中. 2.将记录的信息读取出来. 3.计算出某个文件夹下所有后缀名为txt的数量和dll的数量. 4.从网络上下载文件. 二.二话不说上代码 using Sys ...
- python跳出多循环
参考https://www.php.cn/python-tutorials-88895.html 备注 Python的循环体自己就有else分支! 如果for循环没有执行break,则执行else,f ...
- FPM十一:点击POPUP显示明细
沿接着前面的Search和List.在LIST中点击一列,弹出窗口显示明细. 1.list中定义事件: METHOD if_fpm_guibb_list~get_definition. DATA:gt ...
- 下载win10系统
有时候想重装系统但总找不到下载的地方,今天记录一下.nsdn我告诉你,这里有许多软件下载 网站URL:https://msdn.itellyou.cn/ 我想下载一个Windows10 磁力地址 ed ...