Monkey是安卓平臺的一個命令行工具,它能夠向系統發送僞隨機事件,如按鍵輸入、觸摸屏輸入、手勢輸入等,從而幫助開發人員、測試人員實現對App的壓力測試。在安卓平臺,Monkey是一種有效的方法,用來測試軟件的穩定性、健壯性。android
那麼IOS 平臺,是否是也有這麼好的工具呢?ios 答案是:有。git
那麼IOS 平臺,是否是也有這麼好的工具呢?ios
答案是:有。git
接下給你們介紹一下IOS Monkey測試環境的準備和執行。github
測試條件準備:xcode
1. 申請IOS App源碼的svn權限;app
2. 申請公司的IOS App開發者帳號;iphone
3. 準備好一臺Mac機,並配置好xcode;svn
4. 準備一臺iphone手機。工具
操做步驟:測試
工做中,效率很重要,既然已經有寫好的腳本,咱們拿來先用用。
1.訪問github下載ios monkey腳本;網頁連接
2.將手機和mac機鏈接;
3.打開xcode,編譯源碼到測試機;
4.從xcode啓動instrument
5.從Instrument啓動強大的Automation工具
6.導入js腳本
7.設置運行的event數和event之間的間隔
腳本解析:
在Automaiton工具中,執行的是js腳本,下面咱們一塊兒來看一下這個Monkey腳本。
先看看腳本的都有哪些配置,在代碼行開始部分,咱們看到腳本能夠指定event事件的次數。
numberofEvents:1000 表示隨機測試時要執行的事件數。
delayBetweenEvents: 0.05 單位爲秒,表示兩個事件之間的間隔。
在monkey執行過程當中,monke腳本有可能進入一種狀態,沒法返回到上一層,如在測試搜索App時,app進入到了小說閱讀頁,長時間處於閱讀狀態。這種狀況,會下降monkey隨機測試的範圍,所以須要解決這個問題。monkey腳本提供瞭解決這一問題的策略。可參考buttonHandler.js。
App在運行過程當中常常會出現ANR的狀況,在android平臺咱們能夠經過log分析,發現這一問題。而IOS Monkey可能沒法發現,它會繼續執行event。爲了不這種狀況的發生,咱們能夠修改配置讓Monkey在發現ANR時拋出異常。
腳本中有一項配置,將fingerprintFunction選項設置成true。
默認狀況下,若是1500events 裏fingerprint沒有變化,就拋出一個異常。
若是咱們發現當前腳本的事件沒法知足測試需求,咱們能夠對IOS Monkey腳本進行二次開發,添加本身須要的event。
目前自帶的event以下:
tag:點擊;
drag:拖拽;
flick:划動;
orientation:橫豎屏切換;
clickVolumeUp:將音量調大;
clickVolumeDown:將音量調小;
lock:鎖屏;
pinchClose:縮小;
pinchOpen:放大;
shake:搖晃。
每一個event後的數字越大,表明這個event發生的機率越高。
有時咱們指望隨機事件在某一區域發生,咱們能夠設置隨機事件執行的區域。
欲知IOS Monkey腳本更詳細的功能,請參考源碼。