!!! IOS monkey測試+命令列執行+日誌收集
阿新 • • 發佈:2019-02-16
轉自: 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,拿來直接用。
- 使用Xcode開啟要測試的app
- 啟動Instruments(Product->Profile),或者快捷鍵⌘I。
- 選擇”Automation”,然後點選”Profile”
- Instruments啟動後,會預設啟動錄製。我們點選紅色按鈕(快捷鍵⌘R),把它停掉。
- 在指令碼管理的視窗,新建一個指令碼,點選“Add > Create”
- 重新執行指令碼(不用儲存),快捷鍵⌘R,指令碼就會被Xcode執行,我們可以在控制檯看到日誌。
脫離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。
- 下載原始碼
git clone https://github.com/benvium/libimobiledevice-macosx.git
- 設定環境變數
export DYLD_LIBRARY_PATH=/your/path/here/imobiledevice-macosx/:$DYLD_LIBRARY_PATH PATH=${PATH}:/your/path/here/imobiledevice-macosx/
- 執行
source ~/.bash_profile
- shell中執行
idevicesyslog
即可以看到iphone執行過程中列印的日誌,可以使用grep過濾,可以重定向到檔案。