Monkey Android API 翻译
此篇笔记,记录了API中,对monkey用法的说明,基于Android Studio 2.2.3。
Monkey是一个运行在Android模拟器或者Android设备上的程序,通过使用monkey,应用程序可以模拟一系列的用户操作,例如点击、触摸、手势等等,同时也可以进行系统层面的操作。我们可以使用Monkey进行对app的压力测试,通过一种随机的但易于重复的方式。
综述:
Monkey是一个命令行工具,因此使用Monkey需要借助adb shell。
Monkey的使用需要输入许多的参数和选项,它们主要可以分为以下4种类型:
- 基本配置选项,例如:设置尝试操作事件的数量
- 约束配置参数,例如:用于测试的特定的包名
- 事件的类型和频率
- 调试选项
当Monkey运行时,它会生成事件并发送给系统。同时它也会观察系统在测试下的表现,并且侧重于检测以下三种情况的发生:
- 如果你限制了Monkey在一个或多个特定的包中运行,那么它会监测所有导向其他包的尝试,并阻止这些尝试。
- 如果你的应用崩溃了,或者捕获了任何没有处理的异常,Monkey会停止并报告这些错误。
- 如果你的应用失去响应,Monkey会停止并报告这些错误。
Monkey的基本用法:
Monkey使用时需要连接模拟器或者设备,相关的命令行可以通过脚本或命令行工具执行,基础的用例如下:
$ adb shell monkey [options]<event-count>
如果不输入任何特定参数的话,Monkey会进入quiet mode,这是会发送操作到目标设备上的所有已安装app。
标准的命令行用法如下,以下代码会打开特定的应用并发送500个伪随机事件:
$ adb shell monkey -p your.package.name -v 500
命令参数列表:
下面的表格列出了你可以在Monkey中使用的所有参数:
| 目录 | 选项 | 描述 |
|---|---|---|
| 通用 | –help | 打印简单的参考用法(表格中可能会将双横线显示为长横线,使用时需注意) |
| -v | 命令中的每个 -v 将增加报告的详细程度。 级别0(默认值)提供了除测试启动、完成和最终结果之外的很少信息; 级别1提供了测试运行时的更多详细信息,例如发送到活动的各个事件; 级别2提供了更详细的设置信息,例如选中或未被选中的用于测试的活动。 |
|
| 事件 | -s <seed> | 种子可以标记伪随机数生成器。如果使用相同的种子值重新运行Monkey,它将生成相同的伪随机事件序列。 |
| –throttle <ms> | 用于在事件之间插入延迟 | |
| –pct-touch <percent> |
调整触摸时间的百分比,相应的,可以将touch改为motion:滑动事件;pinchzoom:二指缩放事件; trackball:轨迹时间,随机移动和点击;rotation:屏幕旋转事件; nav:基本导航事件,例如上下左右的方向输入;majornav:主要导航事件,包括菜单键,返回键等; syskeys:系统按建; appweitch:启动activity的百分比,在随机间隔后,调用startactivity方法尽可能启动该package下所有activity; anyevent:其他类型的事件 |
|
| 约束 | -p <allowed-package> |
指定包名,需要注意,每个p选项只能指定一个包名,如果需要测试多个包,需要使用多个p选项 |
| -c <main-category> |
||
| 调试 | –dbg-no-events | 设置此选项,Monkey将执行初始启动,进入一个测试Activity,不会再进一步生成事件。 为了得到最佳结果,可以把它与-v、一个或几个包约束,以及一个保持Monkey运行30秒或更长时间的 非零值结合起来,从而提供一个监控应用程序所调用的包之间的转换的环境。 |
| –hprof | 设置此选项,将会生成Monkey执行前后的内存快照,存放于data/misc目录, 可以用来监控内存泄漏,但由于内存快照文件较大,需小心使用 |
|
| –ignore-crashes | 出现crash暂不退出 | |
| –ignore-timeouts | 出现timeout暂不退出,例如application not responding | |
| –ignore-security -exceptions |
出现许可错误暂不退出,例如启动一个需要某些许可的Activity | |
| –kill-process -after-error |
通常,当Monkey由于错误而停止时,出错的应用汇继续运行。 设置此选项,会通知系统停止发生错误的进程 |
|
| –monitor-native -crashes |
监视并报告Android系统中本地代码的崩溃事件 | |
| –wait-dbg | 停止执行Monkey,直到有调试器和它相连接 |
以上为Android官方文档中给出的Monkey命令介绍,部分命令由于自己使用较少,翻译时参考了《腾讯Android自动化测试实战》一书中的内容,今后随着自己对Android测试的深入了解会继续补充修改。在该书中,还给出了三个隐藏类参数,分别为–pkg-blacklist-file<黑名单包>;–pkg-whitelist-file<白名单包>;-f <脚本文件>。
前两个命令很容易理解,可通过文档来记录黑名单或白名单包,第三个命令可执行用户自定义的脚本文件。
Monkey Android API 翻译的更多相关文章
- 【Android Api 翻译3】android api 完整翻译之Application Fundamentals (学习android必须知道的)
Android应用程序是用Java编程语言编写的.Android SDK工具把应用程序的代码.数据和资源文件一起编译到一个Android程序包中(这个程序包是以.apk为后缀的归档文件),一个Andr ...
- 【Android Api 翻译1】Android Texting(2)Testing Fundamentals 测试基础篇
Testing Fundamentals The Android testing framework, an integral part of the development environment, ...
- 【Android Api 翻译4】android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
Contacts Provider 电话簿(注:联系人,联络人.通信录)提供者 ------------------------------- QUICKVIEW 快速概览 * Android's r ...
- 【Android Api 翻译2】Android Testing(1) 浅尝Android测试的奥秘
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 仅供学习和交流使用,翻译不好勿喷,请只摘除不合适的地方 Testing The Android fram ...
- android api 中文 (73)—— AdapterView
前言 本章内容是android.widget.AdapterView,版本为Android 2.3 r1,翻译来自"cnmahj",欢迎大家访问他的博客:http://androi ...
- 【转】Android API 中文(14) —— ViewStub
用一个XML源填充view.inflate(上下文对象,资源文件Id,父窗口组一般为null): 原文网址:http://www.cnblogs.com/over140/archive/2010/10 ...
- Android API 中文(77)——AdapterView.OnItemSelectedListener
前言 本章内容是android.widget.AdapterView.OnItemSelectedListener,版本为Android 2.3 r1,翻译来自"cnmahj",欢 ...
- Android API 中文(76)——AdapterView.OnItemLongClickListener
前言 本章内容是android.widget.AdapterView.OnItemLongClickListener,版本为Android 2.3 r1,翻译来自"cnmahj", ...
- android api 中文 (75)—— AdapterView.OnItemClickListener
前言 本章内容是android.widget.AdapterView.OnItemClickListener,版本为Android 2.3 r1,翻译来自"麦子",欢迎大家与他交流 ...
随机推荐
- MAC usb启动盘制作
1.从App Store 下载OS 2.磁盘工具格式化磁盘默认即可 3. 为啥截图,因为有些是不一样的,建议使用 Tab建, 未命名则是你移动U盘命名的名称. 4.完成:所有的命令完成的话, 终 ...
- SSIS学习笔记
SSIS全称(Sql Server Integration Services),是 Microsoft BI 解决方案的一大利器.除了作为ETL的一种工具,在以下方面还有着突出的表现: (1) 系统维 ...
- javabean连数据库
1.在src下建包,然后包中建javabean类,代码如下(我的包名为aa) package aa; import java.sql.*; public class bean { private fi ...
- NSURLErrorDomain -999 "Canceled" 错误探究
完整错误描述为 Error Domain=NSURLErrorDomain Code=-999 "Canceled/已取消" 这个错误一般用来描述某个网络请求在还未被发出时就被意外 ...
- PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别
PHP 5.3.X 以前版本 为 Zend Optimizer PHP 5.3.X 之后 更名为 Zend Guard Loader 可以帮助php执行加密后的php代码 安装实例以Ubu ...
- 使用Jmeter进行HTTP接口测试
这几天学习了一下使用Jmeter进行HTTP接口测试,这个也是后面进行性能测试的基础吧 安装运行请自行搜索,下载地址:http://jmeter.apache.org/download_jmeter. ...
- stopping NetworkManager daemon failed
1 初次安装NetworkManager时发现,无法将这个服务关闭 2 上网找了一圈,也没找到原因 3 重启服务器后就能正常关闭了 4 将该服务删除重装也能正常关闭 5 下回重装系统时再观察一下
- 本地hosts临时域名访问
当刚购买了空间,域名和空间还未进行绑定,可以用临时域名访问主机调试网站.您可通过本地hosts指向访问网站,具体方法如下: 特别说明:设置以后,只有当前设置的电脑才能访问,其他电脑访问无效. 第一步: ...
- networkcomms 相关文章(转载)
介绍开源的.net通信框架NetworkComms框架之一 首字节验证 介绍开源的.net通信框架NetworkComms框架之二 传递类 介绍开源的.net通信框架NetworkComms框架之三 ...
- 字符编码笔记:ASCII,Unicode和UTF-8(转载)
作者: 阮一峰 日期: 2007年10月28日 今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料. 结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步 ...