• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 構建iOS持續集成平臺(3)

    發表于:2013-12-11來源:酷勤網作者:不詳點擊數: 標簽:iOS
    在UIAutomation中,界面就是由一堆UI元素構建的層級結構,所有UI元素都繼承對象UIAElement ,該對象提供了每個UI元素必須具備的一些屬性: name value elements

      在UIAutomation中,界面就是由一堆UI元素構建的層級結構,所有UI元素都繼承對象UIAElement ,該對象提供了每個UI元素必須具備的一些屬性:

      name

      value

      elements

      parent

      而整個界面的層級結構如下:

      Target(設備級別的UI,用于支持晃動,屏幕方向變動等操作)

      Application(設備上的應用,比方說Status Bar,keyboard等)

      Main window(應用的界面,比方說導航條)

      View(界面下的View,比方說UITableView)

      Element(View下的一個元素)

      Child element(元素下的一個子元素)

      下面是一個訪問到Child element的例子:

      UIATarget.localTarget().HamcrestDemo().tableViews()[0].cells()[0].elements()

      開發者還可以通過“UIATarget.localTarget().logElementTree()”在控制臺打印出該target下所有的的elements。

      找到UI元素之后,開發者可以基于該UI元素做期望的操作,UIAutomation作為原生的UI測試框架,基本上支持iOS上的所有UI元素和操作,比方說:

      點擊按鈕,例: ***.buttons[“add”].tap()

      輸入文本, 例:***.textfields[0].setValue(“new”)

      滾動屏幕,例:***.scrollToElementWithPredicate(“name begin with ’test’”)

      關于使用UIAutomation做UI測試,推薦大家一定要看一下2010的WWDC的Session 306:Automating User Interface Testing with Instruments【19】。 另外,這兒還有一篇很好的博客,詳細的講解了如何使用UIAutomation做UI自動化測試:http://blog.manbolo.com /2012/04/08/ios-automated-tests-with-uiautomation

      Apple通過Instruments為UIAutomation測試用例的命令行運行提供了支持,這樣就為UIAutomation和CI服務器的集成提供了便利。開發者可以通過如下的步驟在命令行中運行UIAutomation測試腳本

      指定目標設備,構建被測應用,該應用會被安裝到指定的DSTROOT目錄下

      xcodebuild

      -project "/Users/twer/Documents/xcodeworkspace/AudioDemo/AudioDemo.xcodeproj"

      -schemeAudioDemo

      -sdk iphonesimulator6.1

      -configuration Release SYMROOT="/Users/twer/Documents/xcodeworkspace/

      AudioDemo/build" DSTROOT="/Users/twer/Documents/xcodeworkspace/AudioDemo/

      build" TARGETED_DEVICE_FAMILY="1"

      install

      啟動Instruments,基于第一步生成的應用運行UIAutomation測試

      instruments

      -t "/Applications/Xcode.app/Contents/Applications/Instruments.app/

      Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/

      Automation.tracetemplate" "/Users/twer/Documents/xcodeworkspace/AudioDemo

      /build/Applications/TestExample.app"

      -e UIASCRIPT

      為了更好的展示測試效果以及與CI服務器集成,活躍的社區開發者們還嘗試把UIAutomation和Jasmine集成:https://github.com/shaune/jasmine-ios-acceptance-tests

      UIAutomation因其原生支持,并且通過和Instruments的絕佳配合,開發者可以非常方便的使用錄制操作自動生成測試腳本,贏得了很多開發者的支持,但是因蘋果公司的基因,其系統非常封閉,導致開發者難以擴展,于是活躍的社區開發者們開始制造自己的輪子,Fone Monkey就是其中的一個優秀成果。

      Fone Monkey

      Fone Monkey是由Gorilla Logic 公司創建并維護的一個iOS自動化測試工具,其功能和UIAutomation差不多,但是由于其開源特性,極大的解放了活躍開發者的生產力,開發者可以很容易的根據自身需要擴展其功能。

      Fone Monkey的安裝雖然簡單,但是比UIAutomation的原生支持來說,也算是一大劣勢了,具體的安裝過程可以參考:http://www.gorillalogic.com/fonemonkey-ios/fonemonkey-setup-guide/add- fonemonkey-your-xcode-project

      Fone Monkey的使用方式主要就是錄制/回放,也可以把錄制好的測試用例保存為腳本以其他方式運行。安裝好Fone Monkey啟動測試以后,應用界面會有點變化:

      開發者通過點擊Record按鈕錄制操作,點擊Play按鈕播放之前錄制的操作,點擊More按鈕可以添加一些針對元素的驗證, 這樣就形成了一個測試用例。

      在Fone Monkey中錄制的測試用例可以保存為3種格式,以支持多種運行方式:

      scriptName.fm:用于支持在Fone Monkey的窗口中運行測試

      scriptName.m:用于和Xcode的OCUnit test 集成,可以以OCUnit的測試用例的形式運行UI測試,這就讓UI具備了命令行運行和與CI集成的能力。

      scriptName.js:UIAutomation的格式,用于支持在Instruments中,以UIAutomation的形式運行測試。

    原文轉自:http://www.kuqin.com/shuoit/20130920/335289.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>