Monkey for iOS

CrashMonkey4IOS介绍

  1. 支持真机测试、模拟器测试
  2. 支持收集系统日志(Systemlog)、崩溃日志(Crashlog)、instrument行为日志
  3. 支持测试报告截图,绘制行为轨迹
  4. 支持测试设备信息收集
  5. 使用最新版的UIAutoMonkey,加入UI HolesApplication Not Repsonding ("ANR")的处理,添加custom.js作为入口脚本.
  6. 加入tuneup依赖
  7. 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
  8. 支持测试执行过程中App进入后台,自动恢复(测试不会block)

一、环境安装

1.  安装Homebrew

1 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 安装依赖

1 brew install libimobiledevice
2 brew install -HEAD ideviceinstaller
3 brew install imagemagick
4 sudo gem install smart_monkey  #终端下直接以smart_monkey -a app_name -w device的形式跑

二、在iOS模拟器上安装APP

目前CrashMonkey4IOS没有自动启动模拟器的功能,因此需先确认被测设备(包括模拟器)已经启动完毕并停留在桌面,如处在锁屏界面请先解锁

1. 通过命令行启动模拟器

1 xcrun instruments -w ‘iPhone 6 Plus‘

2. 在模拟器中安装APP

1 xcrun simctl install booted /Users/Kz/Documents/Join10.app

( xcrun 这个命令实际还有很多更高深的玩法,通过xcrun --help可以自己学习和领悟 )

三、参数说明

 1 -a: 指向被测程序的BundleID(不可缺省)。e.g.-a com.mytest.app
 2 -w: 指向测试设备的UDID,可以通过$instruments -s devices查看设备id,若缺省则默认指向第一台设备(模拟器或真机) 如:-w 26701a3a5bc17038ca0465186407b912375b35a7
 3 -n: monkey测试的执行次数,默认为1次。e.g.-n 3
 4 -d: 测试报告地址,默认为当前目录下的smart_monkey_result文件夹下。如:-d ~/my-monkey-test-result
 5 -t: 执行时间,单位为秒。如:-t 60
 6 -s: 指向被测app的.dSYM文件,若出现crash,解析crash为明文。如:-s testapp.dSYM
 7 -c: 自定义的配置集路径,参数必须为目录,目录下必须包含custom.js,若使用handler,目录下需存在名为handler的文件夹,用于存放相关文件。如:-c /my/path/custom_cfg
 8
 9 如果使用custom_cfg必须遵守如下目录结构:
10
11 custom_cfg
12     ├── custom.js
13     └── handler
14         ├── buttonHandler.js
15         └── wbScrollViewButtonHandler.js
16 --event-number: 定义Monkey测试的总事件数,默认为50。如:--event-number 100
17 --compress-result: 对测试过程中截取的图片进行压缩,以节省空间开销。如:--compress-result 50%
18 --detail-count: 定义报告详情中记录的事件总数,默认为50,即在报告当中展示最近的50次随机事件,且进行操作示意绘制。如:--detail-count 100
19 --show-config: 打印当前的配置信息,即custom.js。如:--show-config
20 --drop-useless-img: 删除除展示在报告当中的其余截图,以节省空间开销,如,一轮Monkey测试共产出截图100张,参数--detail-count设置为20,那么使用--drop-useless-img会删除其余80张截图。如:--drop-useless-img
21 --list-app: 打印当前连接的真机及模拟器中所安装的app。如:--list-app
22 --list-devices: 打印当前所有可用设备。如:--list-devices
23 --reset-ios-sim: 重启模拟器。如:--reset-ios-sim
24 --version: 打印smart_monkey的版本号。如:--version
时间: 2024-11-08 19:14:10

Monkey for iOS的相关文章

如何用monkey测试IOS

如何用monkey测试IOS 摘要: Monkey是安卓平台的一个命令行工具,它可以向系统发送伪随机事件,如按键输入.触摸屏输入.手势输入等,从而帮助开发人员.测试人员实现对App的压力测试.在安卓平台,Monkey是一种有效的方法,用来测试软件的稳定性.健壮性. 那么IOS 平台,是不是也有这么好的工具呢?    答案是:有. 接下给大家介绍一下IOSMonkey测试环境的准备和执行. 测试条件准备:1.&n Monkey是安卓平台的一个命令行工具,它可以向系统发送伪随机事件,如按键输入.触摸

推荐——Monkey《大话 app 测试——Android、iOS 应用测试指南》

<大话移动——Android与iOS应用测试指南> 京东可以预购啦!http://item.jd.com/11495028.html 当当网:http://product.dangdang.com/23510301.html#catalog 大家速度预购哈--- 这本书离不开大家的支持.其中感谢给我写书评的几位大牛.@熊力_LiXiong @阿里窥基 @徐毅-Kaveri @左耳朵耗子 .明天京东的链接也出来啦-- 推荐--Monkey<大话 app 测试--Android.iOS 应用

自己总结的 iOS ,Mac 开源项目以及库,知识点------持续更新

自己在 git  上看到一个非常好的总结的东西,但是呢, fork  了几次,就是 fork  不到我的 git 上,干脆复制进去,但是,也是认真去每一个每一个去认真看了,并且也是补充了一些,感觉非常棒,所以好东西要分享,为啥用 CN 博客,有个好处,可以随时修改,可以持续更新,不用每次都要再发表,感觉这样棒棒的 我们 自己总结的iOS.mac开源项目及库,持续更新.... github排名 https://github.com/trending,github搜索:https://github.

iOS、mac开源项目及库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

很好的iOS学习资料

https://github.com/vsouza/awesome-ios 汇集了很多好的资料 https://github.com/vsouza/awesome-ios Skip to content This repository Pull requests Issues Gist You don’t have any verified emails. We recommend verifying at least one email. Email verification helps ou

(转)iOS 最佳实践

本文转自http://www.jianshu.com/p/b0bf2368fb95 感谢作者和译者 iOS最佳实践 iOS最佳实践 译者注 本文翻译自 futurice 公司的 iOS Good Practices,译文在 Github 上进行维护,同时在简书 上进行发布. 本文发出几天后发现网上也有了另外一个翻译版本:http://ios.jobbole.com/81830/ 原标题是iOS Good Practices,应该翻译成 iOS 良好实践/优秀实践的,不过好拗口,而且已经发出去了,

Android 测试 Appium、Robotium、monkey等框架或者工具对比

1. Appium测试 (功能测试,用户接受度测试,黑盒测试) - Rating: 8 Website: http://appium.io/ Appium测试相当于黑盒测试.只是测试UI逻辑正确性.所以Appium测试框架提供的方法有限.获取一个AppiumDriver对象.该对象只是有很多findElements()的方法,获取到UI元素.UI元素是WebElement,这个类提供的方法基本是获取信息为主,比如获取name,class,tagName,location,text,isSlect

最全面的iOS和Mac开源项目和第三方库汇总

UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl – XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHou

Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看“使用方法”. (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHouseR