您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 >
用JWebUnit為Web應(yīng)用創(chuàng)建測試用例
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2012/12/26 15:25:45 ] 推薦標(biāo)簽:

  您是否正在尋找一種把自動測試技術(shù)應(yīng)用到 Web 開發(fā)中的方法?那么不用再找了!JWebUnit 是為 Web 應(yīng)用程序創(chuàng)建測試用例的一個開源框架,它可以容易地插入到大多數(shù) Java IDE 中。通過使用一個示例應(yīng)用程序,描述了生成簡潔測試用例的詳細(xì)步驟,軟件工程師 Amit Tuli 對 JWebUnit 進(jìn)行了介紹! 

  自動測試可以節(jié)省重復(fù)執(zhí)行相同測試步驟的時間和精力。本文將介紹 jWebUnit,這是一組 Java 類,用于為 Web 應(yīng)用程序開發(fā)測試用例。jWebUnit 是一個開源項(xiàng)目,可以在 BSD 許可下免費(fèi)獲得。我將介紹如何下載 JWebUnit 庫、配置 Eclipse 平臺來開發(fā) jWebUnit 測試用例,以及如何構(gòu)建一個示例測試用例! 

  JWebUnit 簡介  

  JWebUnit 以 HttpUnit(一個進(jìn)行 Web 應(yīng)用程序自動測試的 Java 庫)和 JUnit 單元測試框架為基礎(chǔ)(請參閱 參考資料)。jWebUnit 提供了導(dǎo)航 Web 應(yīng)用程序的高級 API,并組合了一組斷言,用它們來驗(yàn)證鏈接導(dǎo)航、表單輸入項(xiàng)和提交、表格內(nèi)容以及其他典型商務(wù) Web 應(yīng)用程序特性的正確性。 jWebUnit 以 JAR 文件形式提供的,可以很容易地將它插入大多數(shù) IDE 中,jWebUnit 也包含其他必要的庫! 

  用 HttpUnit 進(jìn)行測試  

  對 Web 應(yīng)用程序自動進(jìn)行測試意味著跳過 Web 瀏覽器,通過程序來處理 Web 站點(diǎn)。首先,我要介紹 HttpUnit(JWebUnit 的構(gòu)建塊之一)是如何簡化這項(xiàng)工作的。HttpUnit 可以模擬幀、javascript、頁面重定向 cookie,等等。在將 HttpUnit 用于 JUnit 時,它可以迅速地對 Web 站點(diǎn)的功能進(jìn)行驗(yàn)證。  

  清單 1 顯示了一個用 HttpUnit 編寫的測試用例,它試圖單擊 HttpUnit 主頁上的“Cookbook”鏈接:

  

  清單 1. 單擊 HttpUnit 主頁上 Cookbook 鏈接的 HttpUnit 代碼

  1 public class HttpUnitTest {
  2 public static void main(String[] args) {
  3  try {
  4   WebConversation wc = new WebConversation();
  5   WebRequest request =
        new GetMethodWebRequest("http://httpunit.sourceforge.net/index.html");
  6   wc.setProxyServer( "your.proxy.com", 80 );
  7   WebResponse response = wc.getResponse(request);
  8   WebLink httpunitLink =
        response.getFirstMatchingLink(WebLink.
   MATCH_CONTAINED_TEXT,"Cookbook");
  9   response = httpunitLink.click();
  10   System.out.println("Test successful !!");
  11  } catch (Exception e) {
  12   System.err.println("Exception: " + e);
  13  }
  14 }
  15 } 

  清單 1 中的代碼用 your.proxy.com (第 6 行)連接 Internet。如果存在直接 Internet 連接,那么可以把這個語句注釋掉。第 8 行的語句在頁面中搜索包含文本 Cookbook 的 Web 鏈接。第 9 行的語句用于單擊這個鏈接。如果找到鏈接,那么用戶會看到 Test Successful !這條消息! 

  用 JWebUnit 進(jìn)行的測試更簡單  

  清單 2 的測試用例用 JWebUnit API 執(zhí)行和清單 1 相同的任務(wù):  

  清單 2. 單擊 HttpUnit 主頁上 Cookbook 鏈接的 JWebUnit 代碼  

  1 public class JWebUnitTest extends WebTestCase{
  2 public static void main(String[] args){
  3  junit.textui.TestRunner.run(new TestSuite(JWebUnitTest.class));
  4 }
  5 public void setUp(){
  6  getTestContext().setBaseUrl("http://httpunit.sourceforge.net");
  7  getTestContext().setProxyName("webproxy.watson.ibm.com");
  8  getTestContext().setProxyPort(8080);
  9 }
  10 public void testSearch(){
  11  beginAt("/index.html");
  12  clickLinkWithText("Cookbook");
  13 }
  14 } 

  如果沒注意清單 2 中特定于 JUnit 的代碼,那么您可以看到,測試用例現(xiàn)在變得相當(dāng)整潔、簡練。需要查看的重要的行是第 6 行、第 11 行和第 12 行! 

  在第 6 行,基本 URL 被設(shè)置到 HttpUnit 的主頁中。第 11 行用相對路徑 /index.html 連接站點(diǎn)。第 12 行用于單擊頁面上具有文本 Cookbook 的鏈接。如果鏈接有效,那么 JUnit 會報告成功;否則,JUnit 會報告異常。  

  JWebUnit API:進(jìn)一步觀察  

  每個 JWebUnit 測試的核心都是 net.sourceforge.jwebunit.WebTestCase 類,它代表測試用例。每個測試用例都必須是從這個類擴(kuò)展而來。(net.sourceforge.jwebunit.WebTestCase 類本身則是從 junit.framework.TestCase 類擴(kuò)展而來的,它在 JUnit 中代表測試用例。) 表 1 描述了這個類的一些常用方法:

表 1. net.sourceforge.jwebunit.WebTestCase 類的重要方法

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