<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    FunFx Getting Started

    【前言】早在半年前的項目之處就想采用TDD的開發方式,最起碼也要做到較完備的自動化測試。當時調研了很久找到一個叫FunFx的開源框架。可惜這個框架的試用之路并不平坦。最初找到的只有文檔,照著文檔做,失敗了。看到文檔上還是Flex2的,換成Flex2,編譯都通不過,原來Flex2需要lcds的license只好回到flex3。被逼無奈去看代碼,我的Ruby水平是二把刀,盡管改代碼了,但還是通不過。懷疑是不是不支持Flex3,而且項目進度又容不得我們慢慢研究,只好自己寫了一個功能有殘次的測試框架,湊付著用,后來因為框架的擴展速度慢慢跟不上開發的速度,最終連寫自動化測試用例的計劃也放棄了。隨著FunFx出了0.0.2,又對這個測試框架產生了一點希望,再次搭建的結果還是一度失敗,經過不懈努力,總算在大年三十的下午運行了第一個Hello World!。
    【正題:搭建TDD測試環境】(下面我說的過程是我個人運行的過程,應該是運行FunFx的充分條件,但不保證都是必要條件,如果有人發現哪個步驟是不必要的。請在回復中指出。)
    FunFX是一個基于Ruby的自動化測試框架,所以,我們必須要裝Ruby,我安裝的Ruby版本是Ruby-186-26。我的Ruby IDE是eclipse上的RDT插件。我的操作系統是筆記本自帶的Vista Home Basic,因此我的IE是ie7。我的Flex IDE是Flex Builder 3 beta3。
    運行環境就這些,那么開始講解搭建過程吧。我們從下載開始說起,首先,我們要去RubyForge下載FunFx 0.0.2,那是一個zip文件,記得要把Source包也下載下來,在后面我會說到它的用處。
    下載完畢之后,將其解壓,我們可以看到三個文件:
    • AutomationGenericEnv.xml
    • FunFX-0.0.2.gem
    • FunFXAdapter.swc
    接下來,我們在FlexBuilder3中新建一個工程:LearnFunFx,在libs文件夾里加入下面三個swc文件:
    • automation_agent.swc
    • automation.swc
    • FunFXAdapter.swc
    這里面的前兩個swc文件來自flex的sdk里面。后面的一個就是FunFx里面的swc,但是這個swc有可能是無法使用的,因為它是為flex 2編譯的,這時就需要我們前面下載的源代碼文件了。源代碼文件解壓開之后可以找到FunFXAdapter文件夾。里面就是FunFXAdapter.swc的源代碼(包括測試代碼)。將其編譯成swc(如果你不會編譯成swc,請查閱相關文章或自己琢磨,給你個提示,可以用library project)。將我們自己編譯出來的swc文件拷到libs里。這樣我們就收集全了所有的類包。

    接著將AutomationGenericEnv.xml拷貝到src文件夾下,然后在LearnFunFx.mxml中加入如下代碼:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
        
    <mx:Script>
            
    <![CDATA[
                import mx.controls.Alert;
            
    ]]>
        
    </mx:Script>
        
    <mx:Button id="test" x="255" y="146" label="Button" click="Alert.show('Hello World!');"/>
        
    </mx:Application> 
    代碼實現的功能很簡單,單擊按鈕,彈出Hello World!的對話框。
    代碼準備完了,接下來是編譯了。下面我們在我們的工程:LearnFunFx上點擊右鍵:選擇Properties,再選擇Flex Compiler,在Additional compiler arguments文本框中輸入:-include-libraries "XXXX\LearnFunFx\libs\automation.swc" "XXXX\LearnFunFx\libs\automation_agent.swc"  "XXX\LearnFunFx\libs\FunFXAdapter.swc"
    XXX表示工程根文件夾,自己補齊。
    接下來,一個囫圇的swf文件就被編譯出來了。這里還有一個問題,html文件里面的Object標簽一定要有一個name屬性,其值要跟id一樣,這就需要我們改html-template文件夾下的index.template.html了。我的做法是把body標簽里的js代碼刪掉,只留下html標簽版本的,然后在Object標簽里面加上一個屬性:name="${application}"。再次編譯一個,將 bin文件夾下的所有文件拷到一個web應用中。

    flex端的處理完畢了,接下來是Ruby,還記得那三個文件嗎?
    在三個文件所在的文件夾中地址欄里運行cmd(這是vista的小技巧,其他的windows可以通過傳統的方式進入cmd窗口,并進入該文件夾),在命令行上輸入: gem install FunFX-0.0.2.gem等待一小會兒,屏幕上提示:Successfully installed FunFX, version 0.0.2,表示已經安裝成功。
    然后進入Eclipse 新建一個ruby項目LearnFunFx,也將AutomationGenericEnv.xml拷到源文件同級目錄下,新建LearnFunFxTest.rb,輸入代碼:
    require 'test/unit'
    require 'funfx'


    class LearnFunFxTest < Test::Unit::TestCase
        
    def setup
         @ie 
    = Funfx.instance
         @ie.start(true)
         @ie.speed 
    = 1
        
    @ie.goto("http://localhost/.../LearnFunFx.html""LearnFunFx")
        end
        
        
    def test_control
            @ie.button(
    "test").click
        end
    end
    “...”是web應用的名字,自己補齊。代碼非常簡單,功能是打開網頁,找到名為LearnFx的swf,點擊id為test的按鈕。在運行之前,我們還要做一件事,不然的話,我們之前的所有努力都白費了。打開IE,按下alt,選擇“工具”-> “Internet選項”,點擊“安全”tab頁,將“本地Intranet”安全級別設為低,將http://localhost加入可信站點,并將可信站點的安全級別設為低。(這里是我不確定是否多做了什么的地方之一)。做了這些之后,ruby調用js就不會被瀏覽器阻攔了。(剛才試了一下,運行完測試用例之后再改回去也不會被阻攔了,搞得我很郁悶,但是在我修改這里之前,確實是無法運行的。)
    然后我們運行該測試用例,我們就會看到一個瀏覽器窗口被彈出,swf中的按鈕被按下,一個Hello World!的對話框彈出。一切成功:)
    (完)




    posted on 2008-02-07 22:52 咖啡屋的鼠標 閱讀(3357) 評論(8)  編輯  收藏 所屬分類: Flex

    評論

    # re: FunFx Getting Started 2008-02-17 12:30 tweg

    非常不錯呀  回復  更多評論   

    # re: FunFx Getting Started[未登錄] 2008-07-09 16:01 nick

    現在更新啦 支持FX3啦  回復  更多評論   

    # re: FunFx Getting Started[未登錄] 2008-11-18 19:10 pan

    你好,看了你的帖子,我想請教一個問題:
    我們的開發人員用了Flex的一個框架FlexLib,發布之后,我用Ruby(安裝了Funfx)寫腳本,但發現Funfx根本識別不了這個框架中的對象
    在FlexLib的Lib目錄里面,有它自己的swc文件。

    是否可以告訴我這種情況下,我該如何去做!~~  回復  更多評論   

    # re: FunFx Getting Started 2008-11-19 11:32 鼠標

    @pan
    我所知funfx還不行,可以去找些別的測試工具,在InfoQ上有
      回復  更多評論   

    # re: FunFx Getting Started[未登錄] 2008-11-19 15:54 pan

    謝謝你!~~首先讓我知道Funfx不能識別Flexlib這個結果.也是我一直想知道的!~
    再者,你讓我在InfoQ去找別的測試工具,找了半天,實在是找不到,你是否說個名字,謝謝  回復  更多評論   

    # re: FunFx Getting Started 2008-11-19 20:20 鼠標

    http://www.google.com/search?q=flex+%E6%B5%8B%E8%AF%95+site%3Awww.infoq.com  回復  更多評論   

    # re: FunFx Getting Started[未登錄] 2008-11-20 16:52 pan

    謝謝了,下載了.用一用再說!~~呵呵  回復  更多評論   

    # re: FunFx Getting Started 2011-05-12 13:54 Mickey Song

    您好,

    您知道出現這個錯誤是怎么回事嗎

    ruby、funfx-0.2.2均正確安裝

    但是運行腳本出現

    “ uninitialized constant Funfx (NameError)”  回復  更多評論   

    <2008年2月>
    272829303112
    3456789
    10111213141516
    17181920212223
    2425262728291
    2345678

    導航

    統計

    常用鏈接

    留言簿(15)

    隨筆分類(52)

    隨筆檔案(76)

    文章分類(3)

    文章檔案(4)

    新聞檔案(1)

    收藏夾

    Flex

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产精品亚洲精品| 四虎免费久久影院| 亚洲av无码精品网站| 中文字幕版免费电影网站| 亚洲精品国产高清嫩草影院| 一道本在线免费视频| 亚洲精品国产电影| a毛片全部免费播放| 国产∨亚洲V天堂无码久久久| a毛片在线看片免费| 久久久婷婷五月亚洲97号色| 久久www免费人成看片| 2020天堂在线亚洲精品专区| 成人片黄网站色大片免费| 国产亚洲精品欧洲在线观看| 亚洲成av人片不卡无码久久| 精品免费久久久久国产一区| 久久久久亚洲AV无码专区首| 青娱分类视频精品免费2| 亚洲av无码专区在线观看亚| 亚洲国产aⅴ综合网| 人妻丰满熟妇无码区免费| 亚洲婷婷第一狠人综合精品| 国产成人精品免费视频大全五级| 青青青视频免费观看| 国产成人精品日本亚洲| 美女裸身网站免费看免费网站| 亚洲精品蜜夜内射| 中文字幕亚洲激情| 免费A级毛片无码A∨| 亚洲va中文字幕| 亚洲综合伊人久久大杳蕉| 亚洲免费在线视频播放| 在线观看国产一区亚洲bd| 亚洲综合精品香蕉久久网| A在线观看免费网站大全| 成人免费夜片在线观看| 亚洲综合久久综合激情久久| 日韩精品免费电影| 可以免费观看的毛片| 亚洲日本在线电影|