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

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

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

    FunFx Getting Started

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

    接著將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> 
    代碼實(shí)現(xiàn)的功能很簡(jiǎn)單,單擊按鈕,彈出Hello World!的對(duì)話(huà)框。
    代碼準(zhǔn)備完了,接下來(lái)是編譯了。下面我們?cè)谖覀兊墓こ蹋篖earnFunFx上點(diǎn)擊右鍵:選擇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表示工程根文件夾,自己補(bǔ)齊。
    接下來(lái),一個(gè)囫圇的swf文件就被編譯出來(lái)了。這里還有一個(gè)問(wèn)題,html文件里面的Object標(biāo)簽一定要有一個(gè)name屬性,其值要跟id一樣,這就需要我們改html-template文件夾下的index.template.html了。我的做法是把body標(biāo)簽里的js代碼刪掉,只留下html標(biāo)簽版本的,然后在Object標(biāo)簽里面加上一個(gè)屬性:name="${application}"。再次編譯一個(gè),將 bin文件夾下的所有文件拷到一個(gè)web應(yīng)用中。

    flex端的處理完畢了,接下來(lái)是Ruby,還記得那三個(gè)文件嗎?
    在三個(gè)文件所在的文件夾中地址欄里運(yùn)行cmd(這是vista的小技巧,其他的windows可以通過(guò)傳統(tǒng)的方式進(jìn)入cmd窗口,并進(jìn)入該文件夾),在命令行上輸入: gem install FunFX-0.0.2.gem等待一小會(huì)兒,屏幕上提示:Successfully installed FunFX, version 0.0.2,表示已經(jīng)安裝成功。
    然后進(jìn)入Eclipse 新建一個(gè)ruby項(xiàng)目LearnFunFx,也將AutomationGenericEnv.xml拷到源文件同級(jí)目錄下,新建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應(yīng)用的名字,自己補(bǔ)齊。代碼非常簡(jiǎn)單,功能是打開(kāi)網(wǎng)頁(yè),找到名為L(zhǎng)earnFx的swf,點(diǎn)擊id為test的按鈕。在運(yùn)行之前,我們還要做一件事,不然的話(huà),我們之前的所有努力都白費(fèi)了。打開(kāi)IE,按下alt,選擇“工具”-> “Internet選項(xiàng)”,點(diǎn)擊“安全”tab頁(yè),將“本地Intranet”安全級(jí)別設(shè)為低,將http://localhost加入可信站點(diǎn),并將可信站點(diǎn)的安全級(jí)別設(shè)為低。(這里是我不確定是否多做了什么的地方之一)。做了這些之后,ruby調(diào)用js就不會(huì)被瀏覽器阻攔了。(剛才試了一下,運(yùn)行完測(cè)試用例之后再改回去也不會(huì)被阻攔了,搞得我很郁悶,但是在我修改這里之前,確實(shí)是無(wú)法運(yùn)行的。)
    然后我們運(yùn)行該測(cè)試用例,我們就會(huì)看到一個(gè)瀏覽器窗口被彈出,swf中的按鈕被按下,一個(gè)Hello World!的對(duì)話(huà)框彈出。一切成功:)
    (完)




    posted on 2008-02-07 22:52 咖啡屋的鼠標(biāo) 閱讀(3357) 評(píng)論(8)  編輯  收藏 所屬分類(lèi): Flex

    評(píng)論

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

    非常不錯(cuò)呀  回復(fù)  更多評(píng)論   

    # re: FunFx Getting Started[未登錄](méi) 2008-07-09 16:01 nick

    現(xiàn)在更新啦 支持FX3啦  回復(fù)  更多評(píng)論   

    # re: FunFx Getting Started[未登錄](méi) 2008-11-18 19:10 pan

    你好,看了你的帖子,我想請(qǐng)教一個(gè)問(wèn)題:
    我們的開(kāi)發(fā)人員用了Flex的一個(gè)框架FlexLib,發(fā)布之后,我用Ruby(安裝了Funfx)寫(xiě)腳本,但發(fā)現(xiàn)Funfx根本識(shí)別不了這個(gè)框架中的對(duì)象
    在FlexLib的Lib目錄里面,有它自己的swc文件。

    是否可以告訴我這種情況下,我該如何去做!~~  回復(fù)  更多評(píng)論   

    # re: FunFx Getting Started 2008-11-19 11:32 鼠標(biāo)

    @pan
    我所知funfx還不行,可以去找些別的測(cè)試工具,在InfoQ上有
      回復(fù)  更多評(píng)論   

    # re: FunFx Getting Started[未登錄](méi) 2008-11-19 15:54 pan

    謝謝你!~~首先讓我知道Funfx不能識(shí)別Flexlib這個(gè)結(jié)果.也是我一直想知道的!~
    再者,你讓我在InfoQ去找別的測(cè)試工具,找了半天,實(shí)在是找不到,你是否說(shuō)個(gè)名字,謝謝  回復(fù)  更多評(píng)論   

    # re: FunFx Getting Started 2008-11-19 20:20 鼠標(biāo)

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

    # re: FunFx Getting Started[未登錄](méi) 2008-11-20 16:52 pan

    謝謝了,下載了.用一用再說(shuō)!~~呵呵  回復(fù)  更多評(píng)論   

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

    您好,

    您知道出現(xiàn)這個(gè)錯(cuò)誤是怎么回事嗎

    ruby、funfx-0.2.2均正確安裝

    但是運(yùn)行腳本出現(xiàn)

    “ uninitialized constant Funfx (NameError)”  回復(fù)  更多評(píng)論   

    <2011年5月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(15)

    隨筆分類(lèi)(52)

    隨筆檔案(76)

    文章分類(lèi)(3)

    文章檔案(4)

    新聞檔案(1)

    收藏夾

    Flex

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 日韩在线播放全免费| 成年免费a级毛片| 亚洲一卡2卡4卡5卡6卡在线99| 亚洲视频国产精品| 亚洲毛片一级带毛片基地| 亚洲hairy多毛pics大全| 国产vA免费精品高清在线观看| 97av免费视频| 国产jizzjizz免费看jizz| 中文字幕一精品亚洲无线一区| 亚洲激情视频网站| 国产桃色在线成免费视频| 亚洲国产成人五月综合网 | 亚洲精品动漫免费二区| 亚洲国产成人爱av在线播放| 日韩在线观看免费| 国产成A人亚洲精V品无码| 亚洲午夜无码久久久久小说 | 亚洲国产精品乱码一区二区| a毛片免费在线观看| 热99re久久免费视精品频软件| 亚洲无线码一区二区三区| 亚洲欧美不卡高清在线| 日韩免费无码一区二区三区| 亚洲精品亚洲人成在线观看下载| 亚洲精品中文字幕无乱码麻豆| 午夜精品免费在线观看 | 免费**毛片在线播放直播| 亚洲毛片无码专区亚洲乱| 成人毛片免费播放| 亚洲视频国产视频| 午夜一级免费视频| 久久免费99精品国产自在现线| 亚洲七七久久精品中文国产| 成全动漫视频在线观看免费高清版下载 | 亚洲精品天堂成人片?V在线播放| 暖暖免费日本在线中文| 中文字幕不卡亚洲| 精品免费久久久久久久| 美女黄网站人色视频免费| 国产香蕉九九久久精品免费|