ios UIAutomation 測試

來源:互聯網
上載者:User
轉載 出處Taobao QA Team,原文地址:http://qa.taobao.com/?p=13737

 

無線用戶端的發展很快,特別針對是android和ios兩款無線作業系統的用戶端應用,相應的測試載入器也應運而生,這裡主要給大家介紹一些針對iPhone App的自動化測試載入器。

         首先,我們把這些測試架構分為三大類:介面測試載入器、注入式UI測試載入器、錄放式UI測試載入器。

        一、介面測試載入器,主要在iphone SDK提供的單元測試架構的基礎上,完成代碼的介面功能測試。

                 這類工具用的比較多的是SDK本身提供的test unit,以及google的google-toolbox-for-mac工具。google的GTM工具是在test unit上做了一層封裝,可以簡單、快速的完成測試指令碼編寫,提供完善的測試日誌和報告,並提供部分簡單的UI測試功能。

                 詳細的文檔可以參考這裡:http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting

         二、注入式UI測試載入器,可以完成對被測應用的UI功能測試,需要在原始碼中加入一些必須的測試代碼。優點是可以類比使用者的操作,測試被測應用的相關功能,可以覆蓋比較全的應用功能。缺點是因為在原始碼中插入了必須的測試代碼,而這些應用發布時需要去除,引入了被測應用和發布應用不一致的風險。

                  UISpec,提供了用例運行前的準備和啟動並執行恢複功能,UIQuery功能,以及較為完善的校正功能,但該工具的使用比較複雜,指令碼的編寫也很繁瑣,雖然對UI可以query,但無法方便、清晰、直觀的查看應用控制項的屬性。

                  詳細的文檔可以參考這裡:http://code.google.com/p/uispec/wiki/Documentation

                  Bromine,指令碼編寫簡單,對控制項的操作,完全類比touch事件實現,但控制項的定位通過對控制項重畫,並插入定位需要的資訊,xpath的描述串也稍顯複雜,校正功能相對較弱。

                  詳細的文檔可以參考這裡:http://code.google.com/p/bromine/

         三、錄放式UI測試載入器,主要通過錄製使用者的操作行為,通過回放來完成對被測應用的功能測試,這類工具對UI的功能測試相對是比較弱的。

                  比較常用的有Instrument、FoneMonke 。

                  Instrument,是iOS提供的主要用於分析應用的效能和使用者行為的工具,利用它可以完成對被測應用的簡單的UI測試。

                  FoneMonke,是國外提供的一個開源的,免費的錄製/回放工具。網站:http://www.gorillalogic.com/fonemonkey

          以上是瞭解的一些針對iPhone App的自動化測試載入器,大家感興趣的可以瞭解瞭解,歡迎交流、學習!

加上一個ios SDK內建的功能:用指令碼編程+control tag+intrument 工具

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

The main thing is to tag all your UI controls in Interface Builder with names, by setting the Accessability label to a unique value for the view.

Once these are all set and you've rebuilt your application for debug, you need to write a Javascript file that runs your application and tests to make sure that everything is running as expected.  Here's a sample file, followed by some commentary.

var view = UIATarget.localTarget().frontMostApp().mainWindow().elements()[2];var textfields = view.textFields();if (textfields.length != 2) {    UIALogger.logFail("Wrong number of text fields");} else {    UIALogger.logPass("Right number of text fields");}var passwordfields = view.secureTextFields();if (passwordfields.length != 1) {    UIALogger.logFail("Wrong number of password fields");} else {    UIALogger.logPass("Right number of password fields");}textfields["username"].setValue("tturner");passwordfields[0].setValue("tod");view.buttons()["logon"].tap();var errorVal = view.staticTexts()["error"].value();if (errorVal != "Invalid User Name or Password") {    UIALogger.logFail("Did Not Get Invalid Username Error: " + errorVal);} else {    UIALogger.logPass("Username Error Detected");}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.