您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源配置管理工具 > HUDSON
Hudson + WebDriver 組織自動(dòng)化測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/12/31 15:03:50 ] 推薦標(biāo)簽:Hudson 測(cè)試

Hudson是一個(gè)比較流行都持續(xù)集成工具。用Hudson來(lái)驅(qū)動(dòng)自動(dòng)化測(cè)試的好處有以下這些:

· 類似crontab的自動(dòng)任務(wù)管理

· 豐富的插件支持

· 支持分布式任務(wù)

· 容易部署

其實(shí)整個(gè)過(guò)程很簡(jiǎn)單,把Hudson跑起來(lái),新建一個(gè)Job,配置一下Ant任務(wù)好了。這里只分享一下我遇到的一些坑。

是否使用Source Code Management獲取新的測(cè)試代碼?

如果每次測(cè)試都拉新的代碼,好處是保證測(cè)試代碼是新的。但是也會(huì)帶來(lái)一些問(wèn)題,測(cè)試代碼本身也是代碼,怎么保證新的測(cè)試代碼沒(méi)有問(wèn)題呢?我個(gè)人認(rèn)為,如果團(tuán)隊(duì)比較小,可以直接拉新的代碼;如果團(tuán)隊(duì)大,需要控制。

如果不用SCM插件,怎么樣更新自動(dòng)化測(cè)試代碼?

我想到的一種辦法是,在Hudson里面建立一個(gè)構(gòu)建自動(dòng)化測(cè)試代碼的Job,這個(gè)Job的產(chǎn)物是自動(dòng)化測(cè)試的包,譬如說(shuō)如果用WebDriver或者Selenium,把測(cè)試代碼build成一個(gè)或者若干個(gè)jar包,然后建立一個(gè)latest的軟鏈接指向新的jar包;在運(yùn)行自動(dòng)化測(cè)試的Job里面做好配置,運(yùn)行測(cè)試的目標(biāo)jar包指向latest.jarOK了。

TestNG的結(jié)果如何跟Hudson整合

Hudson插件很多,可以用testng-plugin來(lái)完成這個(gè)任務(wù)。配置比較簡(jiǎn)單,在Ant腳本里面配置好TestNG的result output,然后在Hudson里面把測(cè)試報(bào)告的模式填好。我直接填的TestNG的默認(rèn)結(jié)果文件“testng-results.xml”。build.xml節(jié)點(diǎn)配置的一個(gè)例子:

<target name="live_check" depends="compile,remove_last_result">

     <testng outputdir="${testng.output.dir}" classpathref="classes" delegateCommandSystemProperties="true" useDefaultListeners="true">
         <xmlfileset dir="${base.dir}" includes="${live.check.config}"/>
      </testng>
    <move file="${testng.output.dir}/${test.result.file}" todir="${ci.workspace}"/>
</target>

首先在testng節(jié)點(diǎn)指定outputdir屬性,然后測(cè)試運(yùn)行完成以后把結(jié)果文件移動(dòng)到Hudson的workspace

怎么樣把Ant的參數(shù)傳遞給TestNG

很多時(shí)候我們會(huì)希望通過(guò)ant把一些參數(shù)傳遞給testng.xml,從而使得測(cè)試更加靈活。例如傳遞不用的base_url可以測(cè)試不同的站點(diǎn)。還有配置不同的瀏覽器。雖然之前這篇文章已經(jīng)介紹了如何把Ant的參數(shù)傳遞給TestNG,但是那個(gè)方法有個(gè)缺點(diǎn),如果在測(cè)試方法A里面調(diào)用了測(cè)試方法B,測(cè)試方法B是不能拿到Ant傳進(jìn)去的參數(shù)的。我的辦法比較土,是首先寫好一個(gè)testng_base.xml的模板文件,把一些可能經(jīng)常改變的數(shù)值替換成參數(shù),然后用Ant的replace任務(wù)做字符串替換。

<target name="replace_testng_xml">
     <replace file="${base.dir}/${testng.file}" token="@@base_url@@" value="${base_url}"/>
     <replace file="${base.dir}/${testng.file}" token="@@browser@@" value="${webdriver.browser}"/>
</target>

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd