Android Monkey使用
Monkey 是什么?
Android SDK自带的压力测试工具,也是一个命令行工具。它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用程序进行压力测试。
(1) Monkey程序由Android系统自带,使用Java诧言写成,在Android文件系统中的存放路径是: /system/framework/monkey.jar;
(2) Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中 的存放路径是:/system/bin/monkey;
(3)Monkey 命令启动方式:
a)可以通过PC机CMD窗口中执行: adb shell monkey {+命令参数}来进行Monkey测试
b)在PC上adb shell 进入Android系统,通过执行 monkey {+命令参数} 来进行Monkey 测试
c ) 在Android机或者模拟器上直接执行monkey 命令,可以在Android机上安装Android终端模拟器
特点:
测试事件和数据都是随机的,不能自定义。
Monkey 命令详解
1、标准的monkey 命令,打开运行sdk目录下的 adb shell
monkey [option] <eventcount> 例如: adb shell monkey -v 500 //产生500 随机事件,作用在系统中所有activity(其实也不是所有的activity,而是包含 Intent.CATEGORY_LAUNCHER 或Intent.CATEGORY_MONKEY 的activity)。
2、基础参数
-p <packageName ...>
用此参数指定一个或者多个包名,指定包之后,monkey将只启动对应的应用,如果未指定包名,系统将允许monkey启动所有应用。
adb shell monkey -p com.android.example 1000 // 指定应用 com.android.example 进行1000次模拟事件测试
adb shell monkey -p com.android.example -p com.android.example2 1000 //指定多个应用
-v
用于指定测试反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应一下参数
adb shell monkey -p com.android.example -v 100 //仅提供启动、测试完成和最终结果等少量日志。
adb shell monkey -p com.android.example -v -v 100 //提供较详细的日志,包括每个发送到Activity 的事件信息
adb shell monkey -p com.android.example -v -v -v 100 // 包括各个activity的信息
-s(随机数种子)
用于指定伪随机数生成器的seed 值,如果seed 相同,则两次Monkey测试所产生的事件序列也相同的,示例:
adb shell monkey -p com.android.example -s 10
--throttle <毫秒>
用于指定用户操作事件延迟时间。默认不设置,则尽可能的执行。
adb shell monkey -p com.android.example --throttle 3000 10
-c <main-category>
如果以这种方式指定一个或多个类别,则Monkey将 仅 允许系统访问使用指定类别之一列出的活动。如果您未指定任何类别,Monkey将选择使用Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY类别列出的活动。要指定多个类别,请多次使用-c选项 - 每个类别一个-c选项。
3、事件操作参数
--pct-touch <percent>
adb shell monkey -p com.android.example --pct-touch 50 1000 >d:\monkeyLog.txt
用于调整触摸事件占的百分比。
--pct-motion <percent>
调整运动事件的百分比 。
--pct trackball <percent>
调整轨迹球事件占的百分比
--pct-nav <percent>
调整“基本”导航事件的百分比。(导航事件由上/下/左/右组成,作为来自方向输入设备的输入。)
--pct-majornav <percent>
调整“主要”导航事件的百分比。(这些导航事件通常会导致UI中的操作,例如5向键盘中的中心按钮,后退键或菜单键。)
--pct-appswitch <percent>
调整活动启动的百分比。在随机的时间间隔内,Monkey将发出一个startActivity()调用,作为最大化包中所有活动的覆盖范围的方法。
--pct-anyevent <percent>
调整其他类型事件的百分比。这是所有其他类型事件的全部功能,例如按键,设备上其他较少使用的按钮等等。
4、调试参数
--hprof
如果设置,此选项将在Monkey事件序列之前和之后立即生成分析报告。这将在data / misc中生成大(~5Mb)文件,因此请小心使用
--ignore-crashes
通常,当应用程序崩溃或遇到任何类型的未处理异常时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-timeouts
通常,当应用程序遇到任何类型的超时错误(例如“应用程序无响应”对话框)时,Monkey将停止。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。
--ignore-security-exceptions
通常,当应用程序遇到任何类型的权限错误时,Monkey将停止,例如,如果它尝试启动需要某些权限的活动。如果指定此选项,Monkey将继续向系统发送事件,直到计数完成。
--kill-process-after-error
通常,当Monkey因错误而停止时,失败的应用程序将保持运行状态。设置此选项后,它将通知系统停止发生错误的进程。注意,在正常(成功)完成的情况下,启动的进程不会停止,并且设备在最终事件之后只是处于最后状态。
--monitor-native-crashes
观看和报告Android系统本机代码中发生的崩溃。如果设置了--kill-process-after-error,系统将停止
转载于:https://www.cnblogs.com/changeMsBlog/p/9903937.html
Android Monkey使用相关推荐
- [原创]Android Monkey 在线日志分析工具开发
[原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有 ...
- [原创]Android Monkey测试工具使用介绍
[原创]Android Monkey测试工具使用介绍 1 Android Monkey介绍 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件 ...
- Android Monkey(转载)
这两天在读Android Monkey的源代码.代码不多,放出分享. 我现说一下,Monkey是干什么的:简单的说就是,模拟用户的touch screen和keyboard的输入.其实这个功能就已经很 ...
- Android Monkey压力测试
一. JAVA环境的搭建 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载. JAVA环境变量的搭建: 在"我的电脑"-"属性"-&q ...
- android monkey 工具,Maxim-高速 Android Monkey 工具使用记录
一 部署准备 项目地址 部署 Maxim 快捷打开 cmd, 视窗键 +r 打开运行窗口后,输入 cmd 回车 D: 回车进入 D:盘 准备直接 git clone 到 D:盘根目录下 D:\> ...
- Android Monkey测试入门:安装sdk、studio、模拟器,并分析monkey日志
Android Monkey测试入门:安装sdk.studio.模拟器,并分析monkey测试报告结果 1. 安装Java JDK和android SDK 2. 安装Andriod studio及模拟 ...
- Android Monkey Test
如何进行Monkey Test 目录 一 简介 二 测试准备 三 基本命令格式 四 测试Log获取 五 Monkey命令参数介绍 六 Android Monkey test官方资料 一.简介 ...
- android monkey原理_Monkey与Appium的使用
monkey与monkeyrunner不足之处: 元素定位依赖于坐标点,稳定性差 不支持跨平台使用(iOS平台无法使用) 没有成熟系统的管理框架 只适用于冒烟测试,检测app稳定性. Appi ...
- android monkey压力测试(二)
一.什么是Monkey 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试. 猴子什么都不懂, 只知道乱敲 通过Monkey程序模拟用户触摸屏幕.滑动T ...
最新文章
- 在WinSCP中使用sudo进行sftp,不用输入密码,获得root权限
- Netty+SpringBoot+FastDFS+Html5实现聊天App详解(一)
- mysql重连服务器失败_java – MySQL连接器错误“服务器时区值中...
- Downloader Middlewares反反爬虫【学习笔记04】
- Qt工作笔记-moveToThread的基本使用以及让线程安全退出
- (231)DPU数据处理单元现有产品介绍
- jpa 数据库方言_使用Hibernate和Oracle 10g方言,如何用JPA生成我的id?
- mysql 去重 根据id_mysql去重,只留一个(id最小的)
- MySQL数据库规范及解读
- Scala基础 - 函数和方法的区别
- WDS+MDT网络部署操作系统
- 【转载】「微信小程序」有哪些冲击与机会?
- java 用户名称中emoji表情包的模糊处理
- LabVIEW编程LabVIEW开发控制PACE1000精密压力测试仪例程与相关资料
- 【2013-10-3前】中国计算机学会推荐国际学术会议和期刊目录
- 【Qt网络编程】实现TCP协议通信
- MySQL锁表了怎么办?
- Cadence Allegro修改图纸尺寸和栅格大小图文教程及视频演示
- centos7修改静态ip,重启网络服务失败
- faric区块链浏览器搭建