推薦淘測試的InstrumentDriver(iOS下的自動化測試)

horky發表於2012-10-15

今天看到了下面這篇部落格,是淘測試開發的iOS自動化測試工具,非常值得學習應用:

  InstrumentDriver,對iOS自動化測試說 Yes!

InstrumentDriver 是 Mobile自動化小組最近實現的基於 instrument,針對 iOS 的自動化測試框架,目前支援 java 語言編寫測試用例。     研究過iOS自動化測試的同學肯定對 instrument UI Automation 有所耳聞,或者已經使用它進行自動化測試實踐。iOS 4.0 開始,蘋果官方提供了
UI Automation 以支援應用的UI自動化測試。不過4.0版本並不支援錄製功能,只能根據提供的API文件編寫 javascript 測試指令碼,instrument 驅動指令碼在應用上模擬使用者行為。

InstrumentDriver 的實現有以下功能特點: 
    1. C/S 模式執行。     框架分為Server端和Client端,雙方進行socket通訊傳遞訊息:Client端(Mobile)負責請求測試步驟執行,並返回執行結果;Server端(Java用例)負責響應Client請求並接受測試步驟的執行結果。C/S模式的實現,甚至可以脫離Mac在PC上編寫、除錯測試用例(執行肯定離不開Mac系統),在熟悉的window環境下,讓用例編寫更加得心應手。 
  
  2. 純Java語言編寫測試用例,很好的相容了instrument js格式的API。     InstrumentDriver 用Java實現了各元素型別的之間的繼承關係以及各元素型別所提供的操作方法,還擴充套件了一些更易於使用的操作,如滑動操作等。熟悉instrument js語法格式的測試人員可以很快用java語言實現測試用例。  

   3. 提供了清晰的控制元件樹狀結構列印及便利的元素查詢方法。     可以樹狀結構列印出當前視窗的所有元素或某一元素下的所有子元素。輸出屬性中不僅包括各元素的基本屬性(name,value,label,rect等),更包括代表該元素的guid,用例中直接使用該guid屬性即可代表該元素進行相應操作。findElemenByText及相關過載方法可以很方便的根據元素的顯示文字,型別,索引組合查詢該元素,極大提升了用例的自描述性和可維護性,也更好的簡化了用例的編寫。  
 

 4. Debug模式和非Debug模式執行

    用例可以debug模式和非debug模式兩種方式執行。debug模式通訊時傳遞json物件或陣列,返回後例項化為具體物件。可以除錯指令碼,檢視相關物件的屬性值。非debug模式僅在需要操作UI元素或獲取UI元素屬性的時候才通訊,較大的提升了執行速度(debug模式的2倍左右)。可以這麼認為:用例debug模式通過後,非debug模式也能執行通過。  
  5. Junit方式執行測試用例
     InstrumentDriver 以大家熟悉的Junit方式驅動測試用例,具備了Junit單元測試的所有優點。可以更好結合其它工具進行持續整合和資料準備。如結合svn,maven,hudson進行持續整合,通過iTest進行資料準備等。




相關文章