Monkey for iOS(CrashMonkey4IOS)
CrashMonkey4IOS介绍
- 支持真机测试、模拟器测试
- 支持收集系统日志(Systemlog)、崩溃日志(Crashlog)、instrument行为日志
- 支持测试报告截图,绘制行为轨迹
- 支持测试设备信息收集
- 使用最新版的UIAutoMonkey,加入
UI Holes与Application Not Repsonding ("ANR")的处理,添加custom.js作为入口脚本. - 加入tuneup依赖
- 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
- 支持测试执行过程中App进入后台,自动恢复(测试不会block)
一、环境安装
1. 安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2. 安装依赖
brew install libimobiledevice
brew install -HEAD ideviceinstaller
brew install imagemagick
sudo gem install smart_monkey #终端下直接以smart_monkey-a app_name-w device的形式跑
二、在iOS模拟器上安装APP
目前CrashMonkey4IOS没有自动启动模拟器的功能,因此需先确认被测设备(包括模拟器)已经启动完毕并停留在桌面,如处在锁屏界面请先解锁
1. 通过命令行启动模拟器
xcrun instruments -w 'iPhone 6 Plus' #或直接输入设备号,如:-w 0F7A5791-3645-4670-B833-175E3598574F
2. 在模拟器中安装APP
xcrun simctl install booted /Users/Kz/Documents/Join10.app
( xcrun 这个命令实际还有很多更高深的玩法,通过xcrun --help可以自己学习和领悟 )
三、参数说明
-a: 被测APP的BundleID。e.g.-a com.mytest.app。由于是直接通过 bundle id 来启动 app ,因此测试前要确保APP已经安装在被测设备上
-w: 指向测试设备的UDID,可以通过$instruments -s devices查看设备id,若缺省则默认指向第一台设备(模拟器或真机) 如:-w 26701a3a5bc17038ca0465186407b912375b35a7
-n: monkey测试的执行次数,默认为1次。e.g.-n
-d: 测试报告地址,默认为当前目录下的smart_monkey_result文件夹下。如:-d ~/my-monkey-test-result
-t: 执行时间,单位为秒。如:-t
-s: 指向被测app的.dSYM文件,若出现crash,解析crash为明文。如:-s testapp.dSYM
-c: 自定义的配置集路径,参数必须为目录,目录下必须包含custom.js,若使用handler,目录下需存在名为handler的文件夹,用于存放相关文件。如:-c /my/path/custom_cfg 如果使用custom_cfg必须遵守如下目录结构: custom_cfg
├── custom.js
└── handler
├── buttonHandler.js
└── wbScrollViewButtonHandler.js
--event-number: 定义Monkey测试的总事件数,默认为50。如:--event-number
--compress-result: 对测试过程中截取的图片进行压缩,以节省空间开销。如:--compress-result %
--detail-count: 定义报告详情中记录的事件总数,默认为50,即在报告当中展示最近的50次随机事件,且进行操作示意绘制。如:--detail-count
--show-config: 打印当前的配置信息,即custom.js。如:--show-config
--drop-useless-img: 删除除展示在报告当中的其余截图,以节省空间开销,如,一轮Monkey测试共产出截图100张,参数--detail-count设置为20,那么使用--drop-useless-img会删除其余80张截图。如:--drop-useless-img
--list-app: 打印当前连接的真机及模拟器中所安装的app。如:--list-app
--list-devices: 打印当前所有可用设备。如:--list-devices
--reset-ios-sim: 重启模拟器。如:--reset-ios-sim
--version: 打印smart_monkey的版本号。如:--version
四、注意事项
1. 若长时间运行smart_monkey后电脑变卡:
首先确认一下是哪个进程内存比较大,如果是instruments,运行过程当中会把日志存储在内存当中,所以比较吃内存,这个是苹果自家的东西,可以使用-n参数 分批次执行,将单次的事件数降低,可是使用-n 迭代5轮,单次事件数1000
2. 在运行过程中,锁屏设置密码后,出现运行错误:
设置锁屏密码无解,建议不要加密码锁
3. 真机上务必开启 Enable UI Automation:
在 Settings->Developer 里面,否则真机上运行时应用会闪退
Monkey for iOS(CrashMonkey4IOS)的更多相关文章
- ZOJ 1093 Monkey and Banana (LIS)解题报告
ZOJ 1093 Monkey and Banana (LIS)解题报告 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- Use GraceNote SDK in iOS(二)获取音乐的完整信息
在需求彻底明朗化,外加从MusicFans转到GraceNote,再从GraceNote的GNSDK转到iOS SDK后,最终完毕了在iOS上通过音乐的部分信息获取完整信息的功能了.(好吧,我承认是相 ...
- 猫学习IOS(四)UI半小时就搞定Tom猫
阿土 首先对影响 下载项目的源材料: Tom猫游戏代码iOS 素材http://blog.csdn.net/u013357243/article/details/44457357 效果图 以前风靡一时 ...
- (素材源代码)猫猫学IOS(四)UI之半小时搞定Tom猫
下载地址:http://download.csdn.net/detail/u013357243/8514915 以下是执行图片展示 制作思路以及代码解析 猫猫学IOS(四)UI之半小时搞定Tom猫这里 ...
- Use MusicBrainz in iOS(三)查询专辑的完整信息
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u010962810/article/details/24066737 本文讨论下通过专辑名获取专辑的 ...
- (素材源代码) 猫猫学IOS(五)UI之360等下载管理器九宫格UI
猫猫分享,必须精品 先看效果 代码学习地址: 猫猫学IOS(五)UI之360等下载管理器九宫格UI 猫猫学IOS(五)UI之360等下载管理器九宫格UI http://blog.csdn.net/u0 ...
- Android Monkey压力测试(转)
参考链接:https://www.cnblogs.com/yyh8/p/6707745.html Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Andr ...
- Android自动化之Monkey环境搭建(一)
从事测试行业两年了,一直很喜欢研究新技术,但是最近有点慵懒.正好公司新出了产品,督促我学习monkey用来测其稳定性. 网上搜索了很久,内容总是很零散,通常需要找几篇文章才能搭好环境.特写此文,一篇文 ...
- monkey测试===Android测试工具Monkey用法简介(转载)
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...
随机推荐
- 关于url中的#-----hash
前言:不知道你们对url地址中的#一开始是怎么理解的,反正我以前一直都是默认那就是本页面中该id的位置.今天看了篇文章,才把这个真正透彻理解. 1,#涵义 #代表网页中的一个位置.其右面的字符,就是该 ...
- C#引用C++开发的DLL
C#语言使用方便,入门门槛较代,上手容易,并且语法与C,java有很类似的地方,IDE做的也好,通用性好,是MS下一代开发的主要力量.但是其开源代码较少,类库不是十分完美,在架构方面还有一些需要做的工 ...
- Hook机制里登场的角色
稍有接触过 WordPress 主题或插件制作修改的朋友,对 WordPress 的Hook机制应该不陌生,但通常刚接触WordPress Hook 的新手,对其运作原理可能会有点混乱或模糊.本文针对 ...
- MongoDB 概念解析
SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 col ...
- 在web.xml注册applicationContext.xml配置文件
概要: Spring配置文件是集成了Spring框架的项目的核心,引擎的开始是:容器先是加载web.xml,接着是applicationContext.xml在web.xml里的注册.以下我们将介绍a ...
- 线性表-双向链表(LinkedList)
双向链表:如图1-3 所示,会把当前header拆分开,重新插入一个Entry<E>. LinkedList源码 0.首先这个类中的两个变量 private transient Entry ...
- HTML5 十大新特性(二)——表单新特性
H5的表单新特性可以分为两大类. 一.10个input的type值 1.email:邮件输入域,在表单提交时提供简单的邮箱格式验证,并弹出一个提示窗口. 2.url:地址输入域,在表单提交时提供简单的 ...
- NSURLErrorDomain -999 "Canceled" 错误探究
完整错误描述为 Error Domain=NSURLErrorDomain Code=-999 "Canceled/已取消" 这个错误一般用来描述某个网络请求在还未被发出时就被意外 ...
- nginx 启动、重启、关闭
一.启动 cd usr/local/nginx/sbin./nginx 二.重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径或者使用cd /usr/local/nginx/s ...
- SpringMVC之controller篇
概述 继 spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...