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

  5.2.3 測試Servlet的內(nèi)部行為

  對于開發(fā)者來說,僅僅測試請求和返回信息是不夠的,所以HttpUnit提供的 ServletRunner模擬器可以讓你對被調(diào)用Servlet內(nèi)部的行為進(jìn)行測試。和簡單測試中不同,這里使用了InvocationContext 獲得該Servlet的環(huán)境,然后你可以通過InvocationContext對象針對request、response等對象或者是該Servlet 的內(nèi)部行為(非服務(wù)方法)進(jìn)行操作。

  下面的代碼演示了如何使用HttpUnit模擬Servlet容器,并且通過InvocationContext對象,測試Servlet內(nèi)部行為的大部分工作,比如控制request、session、response等。

  // 創(chuàng)建Servlet的運(yùn)行環(huán)境

  ServletRunner sr = new ServletRunner();

  // 向環(huán)境中注冊Servlet

  sr.registerServlet( "InternalServlet", InternalServlet.class.getName() );

  // 創(chuàng)建訪問Servlet的客戶端

  ServletUnitClient sc = sr.newClient();

  // 發(fā)送請求

  WebRequest request = new GetMethodWebRequest( "http://localhost/InternalServlet" );

  request.setParameter("pwd","pwd");

  // 獲得該請求的上下文環(huán)境

  InvocationContext ic = sc.newInvocation( request );

  // 調(diào)用Servlet的非服務(wù)方法

  InternalServlet is = (InternalServlet)ic.getServlet();

  is.myMethod();

  // 直接通過上下文獲得request對象

  System.out.println("request中獲取的內(nèi)容:"+ic.getRequest().getParameter("pwd"));

  // 直接通過上下文獲得response對象,并且向客戶端輸出信息

  ic.getResponse().getWriter().write("haha");

  // 直接通過上下文獲得session對象,控制session對象

  // 給session賦值

  ic.getRequest().getSession().setAttribute("username","timeson");

  // 獲取session的值

  System.out.println("session中的值:"+ic.getRequest().getSession().getAttribute("username"));

  // 使用客戶端獲取返回信息,并且打印出來

  WebResponse response = ic.getServletResponse();

  System.out.println(response.getText());

  6、總結(jié)

  1. 模擬用戶行為向服務(wù)器發(fā)送請求,傳遞參數(shù)

  2. 模擬用戶接受服務(wù)器的響應(yīng)信息,并且通過輔助類分析這些響應(yīng)信息,結(jié)合JUnit框架進(jìn)行測試

  3. 使用HttpUnit提供的模擬Servler容器,測試開發(fā)中的Servlet的內(nèi)部行為

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