HttpUnit是一個(gè)集成測(cè)試工具,主要關(guān)注Web應(yīng)用的測(cè)試,提供的幫助類讓測(cè)試者可以通過(guò)Java類和服務(wù)器進(jìn)行交互,并且將服務(wù)器端的響應(yīng)當(dāng)作文本或者DOM對(duì)象進(jìn)行處理。HttpUnit還提供了一個(gè)模擬Servlet容器,讓你可以不需要發(fā)布Servlet,可以對(duì)Servlet的內(nèi)部代碼進(jìn)行測(cè)試。本文中作者將詳細(xì)的介紹如何使用HttpUnit提供的類完成集成測(cè)試。
關(guān)鍵詞: httpunit 集成測(cè)試
1 HttpUnit簡(jiǎn)介
HttpUnit是SourceForge下面的一個(gè)開(kāi)源項(xiàng)目,它是基于JUnit的一個(gè)測(cè)試框架,主要關(guān)注于測(cè)試Web應(yīng)用,解決使用JUnit框架無(wú)法對(duì)遠(yuǎn)程Web內(nèi)容進(jìn)行測(cè)試的弊端。當(dāng)前的新版本是1.5.4。為了讓HtpUnit正常運(yùn)行,你應(yīng)該安裝JDK1.3.1或者以上版本。
1.1 工作原理
HttpUnit通過(guò)模擬瀏覽器的行為,處理頁(yè)面框架(frames),cookies,頁(yè)面跳轉(zhuǎn)(redirects)等。通過(guò)HttpUnit提供的功能,你可以和服務(wù)器端進(jìn)行信息交互,將返回的網(wǎng)頁(yè)內(nèi)容作為普通文本、XML Dom對(duì)象或者是作為鏈接、頁(yè)面框架、圖像、表單、表格等的集合進(jìn)行處理,然后使用JUnit框架進(jìn)行測(cè)試,還可以導(dǎo)向一個(gè)新的頁(yè)面,然后進(jìn)行新頁(yè)面的處理,這個(gè)功能使你可以處理一組在一個(gè)操作鏈中的頁(yè)面。
1.2 和其他商業(yè)工具的對(duì)比
商業(yè)工具一般使用記錄、回放的功能來(lái)實(shí)現(xiàn)測(cè)試,但是這里有個(gè)缺陷,是當(dāng)頁(yè)面設(shè)計(jì)被修改以后,這些被記錄的行為不能重用了,需要重新錄制才能繼續(xù)測(cè)試。
舉個(gè)例子:如果頁(yè)面上有個(gè)元素先的設(shè)計(jì)是采用單選框,這個(gè)時(shí)候你開(kāi)始測(cè)試,那么這些工具記錄的是你的單項(xiàng)選擇動(dòng)作,但是如果你的設(shè)計(jì)發(fā)生了變化,比如說(shuō)我改成了下拉選擇,或者使用文本框接受用戶輸入,這時(shí)候,你以前錄制的測(cè)試過(guò)程無(wú)效了,必須要重新錄制。
而HttpUnit因?yàn)殛P(guān)注點(diǎn)是這些控件的內(nèi)容,所以不管你的外在表現(xiàn)形式如何變化,都不影響你已確定測(cè)試的可重用性。
更多的關(guān)于httpunit的信息請(qǐng)?jiān)L問(wèn)httpunit的主頁(yè) http://httpunit.sourceforge.net/
2 作者的演示環(huán)境
系統(tǒng)平臺(tái):Windows 2000 Sercver
應(yīng)用服務(wù)器:深圳金蝶的apusic3.0
開(kāi)發(fā)工具: eclipse 2.1.2
說(shuō)明: 所有的代碼請(qǐng)下載作者提供的code.jar文件。
3 HttpUnit安裝、環(huán)境配置
3.1 安裝
1. 到HttpUnit的主頁(yè) http://httpunit.sourceforge.net 下載新的包文件,當(dāng)前的新版本是1.5.4。/
2. 將下載。Zip包解壓縮到c:/httpunit(后面將使用%httpunit_home%引用該目錄)
3.2 環(huán)境配置
作者的演示程序都是在eclipse中開(kāi)發(fā)、執(zhí)行的,所以環(huán)境配置都是以eclipse為例,如果你使用其他的開(kāi)發(fā)工具,請(qǐng)根據(jù)這些步驟進(jìn)行環(huán)境配置。
1. 啟動(dòng)eclipse,建立一個(gè)java工程
2. 將%httpunit_home%/lib/*.jar; %httpunit_home%/jars/*.jar加入到該java工程的Java build Path變量中