1. 程式人生 > >!!! IOS monkey測試+命令列執行+日誌收集

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

轉自: http://www.yeetrack.com/?p=1002

使用Xcode進行Monkey測試

在測試app時,我們需要測試一下app的穩定性,monkey測試可以基本滿足我們的需求,monkey測試實際上就是對app進行各種混亂操作,電腦隨機產生操作指令,然後傳送給手機,讓手機去執行,這樣測試執行一段時間(一般是幾個小時),觀察app是否有crash或者異常日誌。

Android sdk中已經整合monkey命令,adb shell monkey很方便。ios的話,需要我們自己去寫指令碼,不過github已經有開源的,UI AutoMonkey,拿來直接用。

  1. 使用Xcode開啟要測試的app
  2. 啟動Instruments(Product->Profile),或者快捷鍵⌘I。
  3. 選擇”Automation”,然後點選”Profile”image
  4. Instruments啟動後,會預設啟動錄製。我們點選紅色按鈕(快捷鍵⌘R),把它停掉。image
  5. 在指令碼管理的視窗,新建一個指令碼,點選“Add > Create”image
  6. 重新執行指令碼(不用儲存),快捷鍵⌘R,指令碼就會被Xcode執行,我們可以在控制檯看到日誌。image

脫離Xcode,命令列執行instruments

Instruments可以在命令列下執行,我們可以通過命令直接呼叫js指令碼執行.

    instruments -w bb9265a3af***********1eb62d1c05274b1d -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate 5LDV722ABF.com.meilishuo.meilishuo -e UIASCRIPT /Users/apple/work/UIAutoMonkey.js UIARESULTSPATH /Users/apple/Desktop/  
  • -w udid 即ios裝置唯一的UDID,可以使用iTunes獲取。
  • -t 指定Instrument路徑
  • -e UIASCRIPT 指定我們的js指令碼路徑
  • UIARESULTSPATH 指定結果儲存路徑

命令列抓取iphone手機日誌

monkey執行過程中,我們需要抓取列印的log,儲存起來,monkey執行完畢後,進行分析。monkey過程中,日誌可能比較多,使用Xcode來看,很不方便。libimobiledevice-macosx這款工具,可以讓我們在shell中獲取iphone的log。

  1. 下載原始碼 git clone https://github.com/benvium/libimobiledevice-macosx.git
  2. 設定環境變數
     export DYLD_LIBRARY_PATH=/your/path/here/imobiledevice-macosx/:$DYLD_LIBRARY_PATH
     PATH=${PATH}:/your/path/here/imobiledevice-macosx/
    
  3. 執行 source ~/.bash_profile
  4. shell中執行idevicesyslog即可以看到iphone執行過程中列印的日誌,可以使用grep過濾,可以重定向到檔案。