iOS Monkey Test Tool.CrashMonkey4IOS
来源:互联网 发布:mac解压rar文件的软件 编辑:程序博客网 时间:2024/06/10 23:59
一条命令跑iOSMonkey:
smart_monkey -a com.vipshop.shangou -w 785d322900ff8d86a934e8febf21c65fa3d7ee6b -t 3000 -n 3 --compress-result 20% --detail-count 200 -s shangouapp.dSYM
smart_monkey -a com.lafaso.iphone -w 785d322900ff8d86a934e8febf21c65fa3d7ee6b --compress-result 20% --detail-count 200 -n 3 -t 1000
简要说明:
- 支持真机测试、模拟器测试
- 支持收集系统日志(Systemlog)、崩溃日志(Crashlog)、instrument行为日志
- 支持测试报告截图,绘制行为轨迹
- 支持测试设备信息收集
- 使用最新版的UIAutoMonkey,加入
UI Holes
与Application Not Repsonding ("ANR")
的处理,添加custom.js作为入口脚本. - 加入tuneup依赖
- 修改UIAutoMonkey.js中截图策略,为每个Event Action进行截图
- 支持测试执行过程中App进入后台,自动恢复(测试不会block)
系统及环境要求:
- 安装Ruby运行环境,建议不要使用OS X自带版本,可自行使用RVM安装最新版的Ruby。建议使用淘宝镜像安装,速度比较快,
$ sed -i -e 's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g' ~/.rvm/config/db
- 确保gem可用,也建议使用淘宝镜像
gem sources --remove https://rubygems.org/;gem sources -a http://ruby.taobao.org/;gem sources -l
- 安装Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 建议Xcode 6.x +
必要依赖安装:
brew install -HEAD ideviceinstaller
brew install libimobiledevice
brew install imagemagick
使用说明:
安装Release版
gem install smart_monkey
, 执行入口: 终端下直接使用smart_monkey
安装开发版
安装Ruby模块gem install erubis
(如安装release版,此模块会自动配置加载。) 直接clone本项目, 执行入口:/CrashMonkey4IOS/bin/smart_monkey
执行命令
smart_monkey -a ${App_BunnelID} -w ${iPhone_UDID}
参数说明:
-a
: 指向被测程序的BundleID(不可缺省)。e.g.-a com.mytest.app
-w
: 指向测试设备的UDID,可以通过$instruments -s devices
进行设备id的查看,若缺省则默认指向第一台设备(模拟器或真机)。e.g.-w 26701a3a5bc17038ca0465186407b912375b35a7
-n
: monkey测试的执行次数,默认为1次。e.g.-n 3
-d
: 测试报告地址,默认为当前目录下的smart_monkey_result文件夹下。e.g.-d ~/my-monkey-test-result
-t
: 执行时间,单位为秒。e.g.-t 60
-s
: 指向被测app的.dSYM文件,若出现crash,解析crash为明文。e.g.-s testapp.dSYM
-c
: 自定义的配置集路径,参数必须为目录,目录下必须包含custom.js
,若使用handler,目录下需存在名为handler的文件夹,用于存放相关文件。e.g.-c /my/path/custom_cfg
如果使用custom_cfg必须遵守如下目录结构:
custom_cfg ├── custom.js └── handler ├── buttonHandler.js └── wbScrollViewButtonHandler.js
--event-number
: 定义Monkey测试的总事件数,默认为50。e.g.--event-number 100
--compress-result
: 对测试过程中截取的图片进行压缩,以节省空间开销。e.g.--compress-result 50%
--detail-count
: 定义报告详情中记录的事件总数,默认为50,即在报告当中展示最近的50次随机事件,且进行操作示意绘制。e.g.--detail-count 100
--show-config
: 打印当前的配置信息,即custom.js。e.g.--show-config
--drop-useless-img
: 删除除展示在报告当中的其余截图,以节省空间开销,如,一轮Monkey测试共产出截图100张,参数--detail-count
设置为20,那么使用--drop-useless-img
会删除其余80张截图。e.g.--drop-useless-img
--list-app
: 打印当前连接的真机及模拟器中所安装的app。e.g.--list-app
--list-devices
: 打印当前所有可用设备。e.g.--list-devices
--reset-ios-sim
: 重启模拟器。e.g.--reset-ios-sim
--version
: 打印smart_monkey的版本号。e.g.--version
⇒ CrashMonkey4IOS/bin/smart_monkey -h Usage: smart_monkey [options] -a app_name Bundle ID of the desired target on device(Required) -w device Target Device UDID(Required) -n run_count How many times monkeys run(default: 1) -d result_dir Where to output result(default: ./smart_monkey_result) -t time_limit_sec Time limit of running -s dsym_file Use .dSYM file to symbolicating crash logs -c custom_cfg_path Indicate confige lib directory path, not a file path. --event-number event_number The monkey event number(default: 50) --compress-result compress_rate compress the screenshot images to save disk space!(example: 50%) --detail-count detail_event_count How many events to show in detail result page(default 50) --show-config Show Current Configuration custom.js --drop-useless-img Delete the un-displayed images of detial page. --list-app Show List of Installed Apps in iPhone/iPhone Simulator --list-devices Show List of Devices --reset-ios-sim Reset iPhone Simulator --version print smart monkey version
Troubleshooting:
安装和执行测试遇到的问题解决方案请参看:Troubleshooting.md
详见:https://github.com/vigossjjj/CrashMonkey4IOS
查看UDID:
instruments -s devices
脚本路径:
/Library/Ruby/Gems/2.0.0/gems/smart_monkey-0.5.0/lib/ui-auto-monkey
遇到问题一:
sudo gem install smart_monkey
ERROR: Could not find a valid gem 'smart_monkey' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)
解决方法:更新一下ruby的源,过程如下:
$ gem sources -l (查看当前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
如果gem太老,可以尝试用如下命令升级gem
$ sudo gem update --system
升级成功后会提示: RubyGems system software updated
遇见问题二:
sudo brew install imagemagick
==> Installing dependencies for imagemagick:libpng, libtiff, freetype
==> Installing imagemagick dependency:libpng
==> Downloadinghttps://homebrew.bintray.com/bottles/libpng-1.6.19.yosemite.bottle.tar.gz
######################################################################## 100.0%
curl: (35) Server aborted the SSL handshake
Error: Failed to download resource "libpng"
Download failed: https://homebrew.bintray.com/bottles/libpng-1.6.19.yosemite.bottle.tar.gz
Warning: Bottle installation failed: building from source.
==> Downloadingftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.19.tar.xz
curl: (78) RETR response: 550
Trying a mirror...
==> Downloadinghttps://dl.bintray.com/homebrew/mirror/libpng-1.6.19.tar.xz
curl: (35) Server aborted the SSL handshake
Error: Failed to download resource "libpng"
Download failed: https://dl.bintray.com/homebrew/mirror/libpng-1.6.19.tar.xz
解决方法:使用源码安装
curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar -zxf ImageMagick.tar.gz
cd ImageMagick-*/
./configure --prefix=/usr/local
make
sudo make install
遇到问题三:
跑真机报错误:Fail: An error occurred while trying to run the script.
在设置-开发者-打开UI AUTOMATION即可
- iOS Monkey Test Tool.CrashMonkey4IOS
- Monkey stress-test tool
- IOS monkey test
- monkey tool
- iOS 真机、模拟器调试 CrashMonkey4IOS
- Monkey test
- Monkey Test
- monkey test
- monkey test
- Tool test
- test tool
- Monkey tool usage
- Android autotest - Monkey tool
- Android autotest - Monkey tool
- Android Monkey test
- Android Monkey test
- Android Monkey test
- Monkey test 資料
- 《Effective java》读书记录-第15条-使可变性最小化
- eclipse 实用技巧记录
- Swiper 参数说明
- studio grandle渠道打包
- dubbo 安装部署
- iOS Monkey Test Tool.CrashMonkey4IOS
- Web网页尺寸规范
- Inheritance - Core Java一些问题
- 图像增强—限制对比度自适应直方图均衡化
- 08day 鼠标显示控制 与32位模式切换
- 简单工厂模式之bitmapfactory
- YTU 2911: 我想放假
- maven 安装
- linux实战(二)----shell脚本监控实例-----日志截取三个命令在性能监控等运用中的实例解析