FunFx Getting Started
【前言】早在半年前的項(xiàng)目之處就想采用TDD的開發(fā)方式,最起碼也要做到較完備的自動(dòng)化測(cè)試。當(dāng)時(shí)調(diào)研了很久找到一個(gè)叫FunFx的開源框架。可惜這個(gè)框架的試用之路并不平坦。最初找到的只有文檔,照著文檔做,失敗了。看到文檔上還是Flex2的,換成Flex2,編譯都通不過,原來Flex2需要lcds的license只好回到flex3。被逼無奈去看代碼,我的Ruby水平是二把刀,盡管改代碼了,但還是通不過。懷疑是不是不支持Flex3,而且項(xiàng)目進(jìn)度又容不得我們慢慢研究,只好自己寫了一個(gè)功能有殘次的測(cè)試框架,湊付著用,后來因?yàn)榭蚣艿臄U(kuò)展速度慢慢跟不上開發(fā)的速度,最終連寫自動(dòng)化測(cè)試用例的計(jì)劃也放棄了。隨著FunFx出了0.0.2,又對(duì)這個(gè)測(cè)試框架產(chǎn)生了一點(diǎn)希望,再次搭建的結(jié)果還是一度失敗,經(jīng)過不懈努力,總算在大年三十的下午運(yùn)行了第一個(gè)Hello World!。【正題:搭建TDD測(cè)試環(huán)境】(下面我說的過程是我個(gè)人運(yùn)行的過程,應(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)境就這些,那么開始講解搭建過程吧。我們從下載開始說起,首先,我們要去RubyForge下載FunFx 0.0.2,那是一個(gè)zip文件,記得要把Source包也下載下來,在后面我會(huì)說到它的用處。
下載完畢之后,將其解壓,我們可以看到三個(gè)文件:
- AutomationGenericEnv.xml
- FunFX-0.0.2.gem
- FunFXAdapter.swc
- automation_agent.swc
- automation.swc
- FunFXAdapter.swc
接著將AutomationGenericEnv.xml拷貝到src文件夾下,然后在LearnFunFx.mxml中加入如下代碼:
<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>
代碼準(zhǔn)備完了,接下來是編譯了。下面我們?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ǔ)齊。
接下來,一個(gè)囫圇的swf文件就被編譯出來了。這里還有一個(gè)問題,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端的處理完畢了,接下來是Ruby,還記得那三個(gè)文件嗎?
在三個(gè)文件所在的文件夾中地址欄里運(yùn)行cmd(這是vista的小技巧,其他的windows可以通過傳統(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 '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
然后我們運(yùn)行該測(cè)試用例,我們就會(huì)看到一個(gè)瀏覽器窗口被彈出,swf中的按鈕被按下,一個(gè)Hello World!的對(duì)話框彈出。一切成功:)
(完)
posted on 2008-02-07 22:52 咖啡屋的鼠標(biāo) 閱讀(3374) 評(píng)論(8) 編輯 收藏 所屬分類: Flex