1. 程式人生 > >iOS Monkey Test Tool.CrashMonkey4IOS

iOS Monkey Test Tool.CrashMonkey4IOS

一條命令跑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

簡要說明:

  1. 支援真機測試、模擬器測試
  2. 支援收集系統日誌(Systemlog)崩潰日誌(Crashlog)instrument行為日誌
  3. 支援測試報告截圖,繪製行為軌跡
  4. 支援測試裝置資訊收集
  5. 使用最新版的UIAutoMonkey,加入UI HolesApplication Not Repsonding ("ANR")的處理,新增custom.js作為入口指令碼.
  6. 修改UIAutoMonkey.js中截圖策略,為每個Event Action進行截圖
  7. 支援測試執行過程中App進入後臺,自動恢復(測試不會block)

系統及環境要求:

  1. 安裝Ruby執行環境,建議不要使用OS X自帶版本,可自行使用RVM安裝最新版的Ruby。建議使用淘寶映象安裝,速度比較快,$ sed -i -e 's/ftp\.ruby-lang\.org\/pub\/ruby/ruby\.taobao\.org\/mirrors\/ruby/g' ~/.rvm/config/db
  2. 建議Xcode 6.x +

必要依賴安裝:

  1. brew install -HEAD ideviceinstaller
  2. brew install libimobiledevice
  3. 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:

檢視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:

解決方法:更新一下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

######################################################################## 100.0%

curl: (35) Server aborted the SSL handshake

Error: Failed to download resource "libpng"

Warning: Bottle installation failed: building from source.

curl: (78) RETR response: 550

Trying a mirror...

curl: (35) Server aborted the SSL handshake

Error: Failed to download resource "libpng"

解決方法:使用原始碼安裝

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

一條命令跑iOSMonkey: smart_monkey -a com.vipshop.shangou -w 785d322900ff8d86a934e8febf21c65fa3d7ee6b -t 3

monkey測試===ios-monkey測試工具

tun event smo tails eml .com 鏈接 == 依賴 iOSmonkey測試工具: crashmonkey 特點: 支持**真機測試、模擬器測試** 支持收集**系統日誌(Systemlog)**、**崩潰日誌(Crashlog)**、***inst

使用ONVIF Device Test Tool獲取網路攝像頭的音/視訊

軟/硬體準備 1、一個網路攝像頭(IPC),品牌必須支援ONVIF協議,具體哪些品牌支援不作為本教程介紹的重點,大家可自行度娘,我知道的有品牌大華和海康威視; 2、ONVIF Device Test Tool軟體下載,筆者使用的版本為15.06, 下載地址:https://downl

golang-test-tool-gotests

gotests介紹 gotests是一個Golang命令列工具 ,讓Go測試變得容易。它根據目標原始檔的函式和方法簽名生成表驅動的測試(TDD)。任何測試檔案中新的依賴都會被自動倒入 Demo 下面是gotests在使用Sublime Text 3外掛時的情況。此外他還支援Emacs、Emacs、Vim

iOS穩定性測試工具CrashMonkey4IOS

摘要:輸入以下命令,執行iOSMonkey:smart_monkey-acom.taobao-w785d322900ff8d86a934e8febf21c65fa3d7ee6b-t3000-n3--compress-result20%--detail-count200-staobaoapp.dSYMsmart

iOS UI Test 自動化測試開發

關於iOS的UI自動化測試,是從Xcode7之後才支援的比較好,使用XCTest.framework,Xcode可以自動錄製UI測試的動作流,還有就是可以使用XCTest UI testing API。 本文主要講的是如何進行自動化測試的開發,即XCTest UI

Android之monkey Test,Monkey測試中的黑名單和白名單,Monkey測試中的黑名單和白名單

// Short Msg: java.lang.IllegalArgumentException // Long Msg: java.lang.IllegalArgumentException: parameter must be a descendant of this view // Bui

Android monkey test 指令碼的編寫

Android 的 monkey test 工具提供了 -f scriptfile 引數,可以指定 test 指令碼,然而翻遍了 Android 的網站也沒有找到這個指令碼的文件,最終只在 monkey 的原始碼 MonkeySourceScript.java 中找到了一小

!!! IOS monkey測試+命令列執行+日誌收集

轉自: http://www.yeetrack.com/?p=1002 使用Xcode進行Monkey測試 在測試app時,我們需要測試一下app的穩定性,monkey測試可以基本滿足我們的需求,monkey測試實際上就是對app進行各種混亂操作,電腦隨機產生操作指令

iOS Technical Support For Nail Shooting-Monkey Shooter

App:Nail Shooting-Monkey Shooter Describe: Nail Shooting-Monkey Shooter is a creative game, monkey shooter shooting hot air balloon! Destroy all t

如何用monkey測試IOS

  Monkey是安卓平臺的一個命令列工具,它可以向系統傳送偽隨機事件,如按鍵輸入、觸控式螢幕輸入、手勢輸入等,從而幫助開發人員、測試人員實現對App的壓力測試。在安卓平臺,Monkey是一種有效的方法,用來測試軟體的穩定性、健壯性。         那麼IOS 平臺

Monkey for iOS

如果你要再IOS上面跑monkey 前提是要有 被測APP的原始碼@! 真機測試monkey我還沒研究到!後續! 本帖面向物件是初學IOS monkey的 哥們,高手別吐槽!!!! 我會後續更新 第一步:開啟Xcode 再把AppDebug到你模擬器上 第二步:再開啟

[問題]code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 8.1'

問題詳情描述: 建立 IOS 靜態庫,執行時報錯如下: Check dependencies CodeSign error: code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 8

iOS 真機、模擬器除錯 CrashMonkey4IOS

簡要 CrashMonkey4IOS 能夠執行在你的真機和模擬器上,幫助收集crash報告,並且附有截圖,一目瞭然, 安裝 (Monkey 支援 brew 安裝,沒有安裝brew的自行去安裝)

分享同事整理的 關於"iOS 無限monkey測試解決方案" 的記錄

無限monkey解決方案 一、什麼是monkey,目的 軟體穩定性測試,向系統傳送偽隨機使用者事件流實現壓力測試。 目的:解放雙手,告別點點點。 優點:提升應用穩定性,能測出一些不可知的情況還有手動點點點無法測出的問題。 侷限性:一般用來測試UI的問題。

iOS分層架構設計

高內聚 持久層 移動 單例設計模式 用戶 不一定 需要 控制器 通過 大家都知道,在移動設計開發中有很多種模式,最常用的單例設計模式、MVC設計模式、工廠設計模式、KVO、通知、代理等等。使用設計模式的目的:為了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。而架

Mqtt協議IOS端移植2

and cat otto client end abi 本地 top 解析 MqttFramework.h #import <Foundation/Foundation.h> #import "MQTTClient.h" #import "Busines

WebViewJavascriptBridge 使用 js調iOS原生代碼

創建 smi creat color web var key urn cti js代碼和原生ios代碼進行交互使用WebViewJavascriptBridge非常簡化了我們的操作特別是在ios這邊 js 掉用ios原生代碼時要註意的幾個事項: 1、js和ios定義好相互調

一些iOS的UI特性

make sets don ble sea defaults out blog ans 1 UI控件的一些基礎屬性 2 3 4 UITextFiled .inputAccessoryView 設置鍵盤上的toolbar 一般實現鍵盤的回收 5 UIT

ios多線程操作(四)—— GCD核心概念

indent img 操作 fort 16px 2.0 b2c 有一種 read GCD全稱Grand Central Dispatch。可譯為“大派發中樞調度器”,以純C語言寫成,提供了很多很強大的函數。GCD是蘋果公司為多核的並行運算提出的解決方式,它能夠自己主