您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源單元測(cè)試工具 > HttpUnit
應(yīng)用HttpUnit進(jìn)行Web測(cè)試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/4/8 16:05:52 ] 推薦標(biāo)簽:

  5、如何使用httpunit進(jìn)行測(cè)試

  5.1 對(duì)頁(yè)面內(nèi)容進(jìn)行測(cè)試

  httpunit中的這部分測(cè)試完全采用了JUnit的測(cè)試方法,即直接將你期望的結(jié)果和頁(yè)面中的輸出內(nèi)容進(jìn)行比較。

  比如你期望中的頁(yè)面顯示是中有一個(gè)表格,它是頁(yè)面中的第一個(gè)表格,而且他的第一行第一列的數(shù)據(jù)應(yīng)該是顯示username,那么你可以使用下面的代碼進(jìn)行自動(dòng)化測(cè)試:

  // 建立一個(gè)WebConversation實(shí)例

  WebConversation wc = new WebConversation();

  // 獲取響應(yīng)對(duì)象

  WebResponse resp = wc.getResponse( "http://www.sqalab.com/article/html/article_59.html" );

  // 獲得對(duì)應(yīng)的表格對(duì)象

  WebTable webTable = resp.getTables()[0];

  // 將表格對(duì)象的內(nèi)容傳遞給字符串?dāng)?shù)組

  String[][] datas = webTable.asText();

  // 對(duì)表格內(nèi)容進(jìn)行測(cè)試

  String expect = "中文";

  // 增加 assertEquals 判斷

  Assert.assertEquals(expect,datas[0][0]);

  5.2 對(duì)Servlet進(jìn)行測(cè)試

  除了對(duì)頁(yè)面內(nèi)容進(jìn)行測(cè)試外,有時(shí)候(比如開(kāi)發(fā)復(fù)雜的Servlets的時(shí)候),你需要對(duì) Servlet本身的代碼塊進(jìn)行測(cè)試,這時(shí)候你可以選擇HttpUnit,它可以提供一個(gè)模擬的Servlet容器,讓你的Servlet代碼不需要發(fā)布到Servlet容器(如tomcat)可以直接測(cè)試。

  5.2.1 原理簡(jiǎn)介

  使用httpunit測(cè)試Servlet時(shí),請(qǐng)創(chuàng)建一個(gè)ServletRunner的實(shí)例,他負(fù)責(zé)模擬Servlet容器環(huán)境。如果你只是測(cè)試一個(gè)Servlet,你可以直接使用registerServlet方法注冊(cè)這個(gè)Servlet,如果需要配置多個(gè)Servlet,你可以編寫(xiě)自己的web.xml,然后在初始化ServletRunner的時(shí)候?qū)⑺奈恢米鳛閰?shù)傳給 ServletRunner的構(gòu)造器。

  在測(cè)試Servlet時(shí),應(yīng)該記得使用ServletUnitClient類(lèi)作為客戶端,他和前面用過(guò)的WebConversation差不多,都繼承自WebClient,所以他們的調(diào)用方式基本一致。要注意的差別是,在使用 ServletUnitClient時(shí),他會(huì)忽略URL中的主機(jī)地址信息,而是直接指向他的ServletRunner實(shí)現(xiàn)的模擬環(huán)境。

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