monkey的基本定义及基本使用(菜鸟学习中)
一.monkey的定义
1.(转自 https://blog.csdn.net/beyond_f/article/details/78543070 )
Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;
Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中的存放路径是:/system/bin/ monkey;
通过在CMD窗口中执行: adb shell monkey{+命令参数}来进行Monkey测试。
2.Monkey是Android的SDK中附带的一个命令行工具
它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
二、 Monkey的特征(此段为转载https://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html)
1、 测试的对象仅为应用程序包,有一定的局限性。
2、 Monky测试使用的事件流数据流是随机的,不能进行自定义。
3、 可对MonkeyTest的对象,事件数量,类型,频率等进行设置。
三.、monkey基本使用
前提:
pc端已经安装adb命令(只执行一个包名可以不进行root)
主题:
1.手机连接电脑
2.在pc端输入adb devices
List of devices attached
(若不显示设备信息:我的电脑右键-设备管理器-右侧Android phone-右键选择属性-详细信息-选择硬件id-记录VID值-进入到C:\Documents and Settings\(你的用户名)下。进去找到adb_usb.ini文件-把你的VID值写进去如下图:然后重新连接输入命令就可以了)
3.查看包名list
1)adb shell pm list packages(可看到包名如下)
2)(若你只有apk,不知道包名。还有一种方法:aapt dump badging[+apk] 也会得到包名如下:)
3)执行 adb shell am monitor 然后打开被测试的应用即可获取包名
(若不确定包是否已安装,可以用adb shell pm list packages [options] <INTENT> 来进行确认,它的含义是列举出所有包含<INTENT>的package。 e.g. adb shell pm list packages com.hiveview.content)
4.选择你需要测试的包名(例如com.ktcp.tvvideo)输入简单命令如下:(部分日志如下:)
adb shell monkey -p 包名 [参数] -v (-v -v) 执行次数 >导出log文件 例:
adb shell monkey -p com.ktcp.tvvideo -v 10000 > C:\Users\Administrator\qa.txt
四、参数解释
1.-p:指的是package。
2.-s :指定产生随机事件种子值,相同的seed值产生相同的事件序列。(通俗的说:上图中第一行的seed值为500,有时使用monkey测试会出现崩溃,输入相同的seed值再进行测试,可以对崩溃的测试进行复现,方便找到bug原因)
adb shell monkey -p 包名 -s (seed) (-s 500 --ignore-crashes --ignore-timeouts)-v (envent-count)> aa.txt
如:adb shell monkey -p com.ktcp.tvvideo -s 500 -v 10 >aa.txt //重复(seed值要相同)第一次出现崩溃的操作
3.-v:作用:命令行上的每一个-v都将增加反馈信息的详细级别。
Level0(默认),除了启动、测试完成和最终结果外只提供较少的信息。
Level1,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
Level2,提供了更多的设置信息,如测试中选中或未选中的Activity信息。
4.10000:指的是执行10000次事件
解释:com.ktcp.tvvideo 产生时间序列的种子值:500 忽略程序崩溃 、 忽略超时 , 产生 10000个事件 。
具体参数解释:(转http://www.cnblogs.com/biang/p/5309040.html)
完整实例:adb shell monkey -p com.XXX --throttle 500 -s 700 --pct-syskeys 0 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 1500000000 > aa.txt
monkey的基本定义及基本使用(菜鸟学习中)相关推荐
- css 菜鸟学习中!
题目来源:https://www.bilibili.com/read/cv5273502/ 1. 请选出不属于<font>标记属性的一项(选一项) A. size B. align ...
- 自然语言处理菜鸟学习笔记(一)
数学基础 1.概率论基础: • 统计自然语言处理的目标是对自然语言领域的 数据进行统计推理: • 统计推理通常由两个步骤来完成:首先,提取 依照某些未知概率分布所产生的数据,然后对 这些数据分布进行某 ...
- 菜鸟学习笔记:Java提升篇12(Java动态性2——动态编译、javassist字节码操作)
菜鸟学习笔记:Java提升篇12(Java动态性2--动态编译.javassist字节码操作) Java的动态编译 通过脚本引擎执行代码 Java字节码操作 JAVAssist的简单使用 常用API ...
- 菜鸟学习笔记:Java提升篇11(Java动态性1——注解与反射)
Java提升篇11(Java其它高级特性--注解与反射) 注解(Annotation) JDK内置注解 自定义注解 元注解(meta-annotation) 反射(reflection) 动态语言 反 ...
- 菜鸟学习笔记:Java提升篇8(线程2——线程的基本信息、线程安全、死锁、生产者消费者模式、任务调度)
菜鸟学习笔记:Java提升篇8(线程2--线程的基本信息.线程安全.死锁.生产者消费者模式.任务调度) 线程的基本信息 线程同步 线程安全 死锁 生产者消费者模式 任务调度(了解) 线程的基本信息 J ...
- 菜鸟学习笔记:Java提升篇6(IO流2——数据类型处理流、打印流、随机流)
菜鸟学习笔记:Java IO流2--其他流 字节数组输入输出流 数据类型处理流 基本数据类型 引用类型 打印流 System.in.System.out.System.err 随机流RandomAcc ...
- 菜鸟学习笔记:Java提升篇4(容器4——Collections工具类、其他容器)
菜鸟学习笔记:Java容器4--Collections工具类.其他容器 Collections工具类 容器其他知识点 队列Queue Enumeration接口 Hashtable Propertie ...
- 菜鸟学习笔记:Java提升篇3(容器3——泛型、排序)
菜鸟学习笔记:Java容器3--泛型.排序 泛型 泛型类 泛型接口 泛型方法 泛型继承 通配符"?" 泛型知识点补充 容器排序 Comparable接口与compareTo方法 C ...
- 菜鸟学习笔记:Java提升篇2(容器2——Map、Set、迭代器)
菜鸟学习笔记:Java容器2--Map.Set.迭代器 Map容器 HashMap的使用 Hash表讲解 Map实现 Set容器 HashSet的使用 实现 Iterator迭代器 Map容器 Has ...
最新文章
- P3398仓鼠(LCA)
- vue ui 报错errno:-4058解决办法
- Java面试题目,java关键字final
- plone进行 用户和权限管理
- pyspark 冒烟
- 《点石成金-访客至上的web和移动可用性设计秘籍》读书笔记
- 18650锂电池保护板接线图_12v锂电池保护板电路图 - 全文
- 计算机桌面文件能单独设密码吗,win7文件夹设置密码_给单独一个文件夹设密码...
- 《Python程序设计》——2.2 字符串
- 书到用时方恨少,一大波JS开发工具函数来了
- [高通SDM450][Android9.0]CTA认证--去除某些应用开机使用定位权限
- 里氏代换原则C#详解
- 课程设计 单项选择题标准化考试系统
- ​FH5202原厂2A开关式同步降压型锂电池充电电路IC
- 生物信息学与计算机的关系,生物信息学与计算机科学.PDF
- toad mysql导入excel_toad导入表数据库
- 中国电脑教育报:搜索引擎十年有多少故事
- 怎么做互联网信息科技PPT模板?
- 十岁的 Apache Dubbo 还能再乘风破浪吗?
- preg_match 的用法