Monkey基础
2015-08-20 14:20
281 查看
一.Monkey工具简介
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
特性:
测试对象:应用程序包
测试数据:随机事件流
测试控制:参数设置
二.环境配置
安装JDK
1.安装JDK程序,如:jdk-8u5-windows-i586.exe
2.配置环境变量:
a.进入计算机→属性→高级系统设置→高级→环境变量
b.新建系统变量 JAVA_HOME,变量值填写JDK安装目录,如:
C:\Program Files\Java\jdk1.8.0_05
C.在path变量中新增: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
d.新建系统变量CLASSPATH,变量值填写: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3.验证安装成功:
命令行输入:java –version.如下显示则成功。
安装Android SDK
1.安装Android SDK程序,如:
installer_r22.6.2-windows.exe
2.配置环境变量:
a.进入计算机→属性→高级系统设置→高级→环境变量
b.在path变量中新增工具包目录,如本机中的:
D:\Program Files\Android\android-sdk\tools;
D:\Program Files\Android\android-sdk\platform-tools
电脑USB连接手机或打开模拟器
运行CMD命令行
输入:adb shell。如下显示,则配置成功:
三.Monkey举例
Monkey -p com.soufun.aos –v 50
[Monkey] 指示monkey命令
[-p]指定应用程序包
[com.soufun.aos]应用程序包名
[-v]指定日志打印详细程度,-v越多,日志越详细。
[50]发送事件数
本例功能:启动com.soufun.aos程序包,发送50个随机事件。显示日志详细程度为-v级。
四.程序包名称获取
获取程序包名有多种方式,下面介绍一种简单的在目录中查找程序包名称:
Android系统的程序包储存在/data/data目录下,进入需获取root权限。
五.运行结果
六.运行结果分析
Seed:随机生成数,与 –s 参数配合,用于对同一个程序包生成相同的事件序列(初始界面一致)。
Count:事件数
AllowPackage:程序包名称
Event percentages:各事件百分比
Sending trackball、Sending Touch…:发送的事件
Event injected:已完成的事件数
Network stats:网络统计时间。分别统计在客户端、WIFI、无连接耗费的时间及合计耗费时间。
Monkey finish:monkey运行完成。
七.获取错误信息
将打印的日志输出到文本文件中。
搜索ANR,查找ANR( Application Not Responding )问题。
搜索Exception,查找崩溃问题。
其他关键字:crash、fatal.
找到出现问题位置后,查看其上边几个事件,手动复现该问题,分析产生原因
八.常用参数
约束限制参数:
-p <packages>:使用该参数指定一个包或者几个包,多个包需要加多个-p。
--pkg-blacklist-file /data/blacklist.txt: 执行黑名单以外的应用(执行APK集合)。
--pkg-whitelist-file /data/whitelist.txt: 执行白名单的应用(执行APK集合)。
-c <main-category>:使用此参数指定一个或多个类别,多个类别需要加多个-c。一般不设置,使用默认类别“Intent.category.LAUNCHER”和“Intent.category.MONKEY”。
调试参数:
--dbg-no-events:设置此参数,monkey将执行初始启动,进入到一个测试Activity后,不会进一步生成事件。
--ignore-crashes:设置此参数,应用程序崩溃或异常时(crash、exception),继续发送事件信息。
--ignore-timeouts:设置此参数,在应用程序超时(ANR)的时候,继续发送事件。
--ignore-security-exceptions:设置此参数,在应用程序发生许可证错误的时候(认证或证书异常),继续发送事件。
--kill-process-after-error:设置此参数,在应用程序出现错误后,将会通知系统停止发生错误的进程。
--monitor-native-crashes:设置此参数,监视并报告Android系统中本地代码的崩溃事件,如果设置”--kill-process-after-error”参数,系统将停止运行该进程。
--ignore-native-crashes:设置此参数,忽略本地代码导致的崩溃。
事件参数:
-s <seed>:伪随机数生成器的seed值,如果使用相同的seed值再次运行同一个包,它将生成相同的事件序列。注意,要生成相同的事件序列,需确保再次执行monkey时的起始界面相同。
--throttle <milliseconds>:在事件之间插入固定的延迟事件,这个选项可以减缓monkey的执行速度,单位为毫秒。
-v:每一个-v将增加反馈信息的级别,级别越高,log的信息就越详细,一般采用三个-v。
--pct-touch <percent>:触摸事件百分比。比如一个down-up事件。
--pct-motion <percent>:动作事件的百分比。动作事件指一个down事件,一系列随机事件,然后一个up事件。
--pct-trackball <percent>:轨迹事件的百分比。轨迹事件由一个或多个移动组成,有时伴随点击事件。
--pct-nav <percent>: 基本导航事件的百分比。导航事件就是方向键,上下左右。
--pct-majornav <percent>:主要导航事件的百分比。这些导航事件通常引发图形界面中的动作,如5-way键盘的中间按键,回退按键,菜单按键。
--pct-syskeys <percent>:系统按键事件的百分比。这些事件由系统保留,如Home、Back、Start、Call、End Call及音量控制键。
--pct-appswitch <percent>:启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
--pct-flip <percent>:调整键盘翻转事件的百分比。
--pct-anyevent <percent>: 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
九.实际应用例子
adb shell monkey -p com.soufun.aos -v -v -v --ignore-crashes --ignore-timeouts --monitor-native-crashes --pct-touch 30 --pct-motion 30 --pct-trackball 30 --pct-nav 10 --throttle 500 1000 >d:\monkeyresult.txt
注意:
事件次数一定放在最后,否则次数后的设置不生效。
将生成的日志信息发送到文本文件中保存,便于搜索错误信息。
十.Monkey工具优缺点
优点:
简单、易用,可以快速对程序包进行压力测试。
无需编码。
设置项丰富。
缺点:
测试对象只针对程序包。
发现的问题进行定位较难。
发送的是随机事件流,不能自定义。
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
特性:
测试对象:应用程序包
测试数据:随机事件流
测试控制:参数设置
二.环境配置
安装JDK
1.安装JDK程序,如:jdk-8u5-windows-i586.exe
2.配置环境变量:
a.进入计算机→属性→高级系统设置→高级→环境变量
b.新建系统变量 JAVA_HOME,变量值填写JDK安装目录,如:
C:\Program Files\Java\jdk1.8.0_05
C.在path变量中新增: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
d.新建系统变量CLASSPATH,变量值填写: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3.验证安装成功:
命令行输入:java –version.如下显示则成功。
安装Android SDK
1.安装Android SDK程序,如:
installer_r22.6.2-windows.exe
2.配置环境变量:
a.进入计算机→属性→高级系统设置→高级→环境变量
b.在path变量中新增工具包目录,如本机中的:
D:\Program Files\Android\android-sdk\tools;
D:\Program Files\Android\android-sdk\platform-tools
电脑USB连接手机或打开模拟器
运行CMD命令行
输入:adb shell。如下显示,则配置成功:
三.Monkey举例
Monkey -p com.soufun.aos –v 50
[Monkey] 指示monkey命令
[-p]指定应用程序包
[com.soufun.aos]应用程序包名
[-v]指定日志打印详细程度,-v越多,日志越详细。
[50]发送事件数
本例功能:启动com.soufun.aos程序包,发送50个随机事件。显示日志详细程度为-v级。
四.程序包名称获取
获取程序包名有多种方式,下面介绍一种简单的在目录中查找程序包名称:
Android系统的程序包储存在/data/data目录下,进入需获取root权限。
五.运行结果
六.运行结果分析
Seed:随机生成数,与 –s 参数配合,用于对同一个程序包生成相同的事件序列(初始界面一致)。
Count:事件数
AllowPackage:程序包名称
Event percentages:各事件百分比
Sending trackball、Sending Touch…:发送的事件
Event injected:已完成的事件数
Network stats:网络统计时间。分别统计在客户端、WIFI、无连接耗费的时间及合计耗费时间。
Monkey finish:monkey运行完成。
七.获取错误信息
将打印的日志输出到文本文件中。
搜索ANR,查找ANR( Application Not Responding )问题。
搜索Exception,查找崩溃问题。
其他关键字:crash、fatal.
找到出现问题位置后,查看其上边几个事件,手动复现该问题,分析产生原因
八.常用参数
约束限制参数:
-p <packages>:使用该参数指定一个包或者几个包,多个包需要加多个-p。
--pkg-blacklist-file /data/blacklist.txt: 执行黑名单以外的应用(执行APK集合)。
--pkg-whitelist-file /data/whitelist.txt: 执行白名单的应用(执行APK集合)。
-c <main-category>:使用此参数指定一个或多个类别,多个类别需要加多个-c。一般不设置,使用默认类别“Intent.category.LAUNCHER”和“Intent.category.MONKEY”。
调试参数:
--dbg-no-events:设置此参数,monkey将执行初始启动,进入到一个测试Activity后,不会进一步生成事件。
--ignore-crashes:设置此参数,应用程序崩溃或异常时(crash、exception),继续发送事件信息。
--ignore-timeouts:设置此参数,在应用程序超时(ANR)的时候,继续发送事件。
--ignore-security-exceptions:设置此参数,在应用程序发生许可证错误的时候(认证或证书异常),继续发送事件。
--kill-process-after-error:设置此参数,在应用程序出现错误后,将会通知系统停止发生错误的进程。
--monitor-native-crashes:设置此参数,监视并报告Android系统中本地代码的崩溃事件,如果设置”--kill-process-after-error”参数,系统将停止运行该进程。
--ignore-native-crashes:设置此参数,忽略本地代码导致的崩溃。
事件参数:
-s <seed>:伪随机数生成器的seed值,如果使用相同的seed值再次运行同一个包,它将生成相同的事件序列。注意,要生成相同的事件序列,需确保再次执行monkey时的起始界面相同。
--throttle <milliseconds>:在事件之间插入固定的延迟事件,这个选项可以减缓monkey的执行速度,单位为毫秒。
-v:每一个-v将增加反馈信息的级别,级别越高,log的信息就越详细,一般采用三个-v。
--pct-touch <percent>:触摸事件百分比。比如一个down-up事件。
--pct-motion <percent>:动作事件的百分比。动作事件指一个down事件,一系列随机事件,然后一个up事件。
--pct-trackball <percent>:轨迹事件的百分比。轨迹事件由一个或多个移动组成,有时伴随点击事件。
--pct-nav <percent>: 基本导航事件的百分比。导航事件就是方向键,上下左右。
--pct-majornav <percent>:主要导航事件的百分比。这些导航事件通常引发图形界面中的动作,如5-way键盘的中间按键,回退按键,菜单按键。
--pct-syskeys <percent>:系统按键事件的百分比。这些事件由系统保留,如Home、Back、Start、Call、End Call及音量控制键。
--pct-appswitch <percent>:启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。
--pct-flip <percent>:调整键盘翻转事件的百分比。
--pct-anyevent <percent>: 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
九.实际应用例子
adb shell monkey -p com.soufun.aos -v -v -v --ignore-crashes --ignore-timeouts --monitor-native-crashes --pct-touch 30 --pct-motion 30 --pct-trackball 30 --pct-nav 10 --throttle 500 1000 >d:\monkeyresult.txt
注意:
事件次数一定放在最后,否则次数后的设置不生效。
将生成的日志信息发送到文本文件中保存,便于搜索错误信息。
十.Monkey工具优缺点
优点:
简单、易用,可以快速对程序包进行压力测试。
无需编码。
设置项丰富。
缺点:
测试对象只针对程序包。
发现的问题进行定位较难。
发送的是随机事件流,不能自定义。
相关文章推荐
- BA-Honeywell WEBsAX系统
- 记2015暑假大学生电子设计竞赛
- svn 无法连接主机, 无法加载或初始化请求的服务提供程序
- 如何抓取网页
- LeetCode96_Unique Binary Search Trees(求1到n这些节点可以组成多少种不同的二叉查找树) Java题解
- DWORD转CString
- NOI 2015 T1 等式
- 异步获取网络图片Bitmap
- 面向对象思想
- dynamic change content of bootstrap tooltip or popover
- Java的内存机制--知晓一二
- Jupiter代码审查工具使用参考
- 欧几里德与扩展欧几里德算法(转)
- IOS屏幕旋转
- Wireshark和TcpDump抓包分析心得
- UISegmentControl的属性和方法
- 字符串最后一个单词的长度
- IE渲染
- 【笔记】杂
- python基础二——list与字符串