jWebUnit簡介
jWebUnit是以HttpUnitJUnit 單元測試框架為基礎,用于為Web應用程序開發測試用例,對 Web應用程序自動進行測試意味著跳過Web瀏覽器,通過程序來處理Web站點。jWebUnit提供了導航Web應用程序的高級API,并組合了一組斷言,用它們來驗證url、頁面文本、按鈕、表單項、cookie等頁面元素?梢院唵慰旖莸膶崿F頁面級自動化測試用例。
與automan框架比較的優缺點
優點1. 編碼簡單,API直觀。在eclipse里編寫簡單的語句調用API,可以實現基本的頁面操作。
優點2. 運行速度快。由于是程序模擬瀏覽器進行運行,相比automan框架真實進行瀏覽器操作來說,用例執行的速度相當快?煽焖龠M行回歸測試。
優點3. 基于java,易于擴展兼容。
缺點1. 對部分頁面js無法支持
缺點2. 瀏覽器無法支持支付寶控件,在需要控件的頁面無法進行用例編寫
下載 jWebUnit,在Eclipse中配置jWebUnit
1. 把下載的文件jwebunit-2.5-release.zip釋放到任意目錄中(假設是d:\temp)直接下載或訪問jwebunit網站
2. 在 Eclipse 中創建新 Java 項目,將其命名為TaobaoJWebUnit。
3. 右擊 Package Explorer 視圖中的TaobaoJWebUnit項目,然后選Properties。
4. 單擊Java Build Path。單擊Libraries 標簽中的 Add External JARs。
5. 瀏覽到 d:\temp\jwebunit-2.5\lib 目錄,選擇這個目錄中的所有 JAR 文件。
6. 單擊 OK。
現在可以編寫測試用例。以下舉例說明驗證登錄功能的一個簡單用例
1. 新建LoginTest.class
2. 編碼如下
public class LoginTest extends WebTestCase{
public void testlogin(){
this.beginAt(“此處應該為測試環境的登錄url,以防泄密,所以不寫在這里”);
this.setTextField(“TPL_username”, “wtx0000″);
this.setTextField(“TPL_password”,”testpw”);
this.clickButtonWithText(“登錄”);
this.assertLinkPresentWithText(“退出”);
3. 右鍵——run as ——Junit Test
4. 查看運行結果
代碼解析:
1.從代碼我們可以看出,jwebunit提供的API非常直觀。通常情況下,我們可以通過html控件的name或者id來定位。除此之外,還可以通過xpath語法對控件進行定位,xpath語法是一種非常簡單的語法。
2.不支持https
以下是jwebunit核心類的幾個重要方法
每個 jWebUnit 測試的核心都是 net.sourceforge.jwebunit.WebTestCase 類,它代表測試用例。每個測試用例都必須是從這個類擴展而來。(net.sourceforge.jwebunit.WebTestCase 類本身則是從 junit.framework.TestCase 類擴展而來的,它在 JUnit 中代表測試用例。)
net.sourceforge.jwebunit.WebTestCase 類的重要方法
public TestContext getTestContext() 得到測試用例的上下文?梢杂盟L問像地區、基本 URL 和 cookie 之類的項目
public void beginAt(String relativeURL) 在相對于基本 URL 的 URL 處開始對話
public void setWorkingForm(String nameOrId) 與指定的表單開始交互。如果當前頁面只有一個表單,就不需要調用這個方法
protected void submit() 提交表單 —— 等同于單擊表單的 提交 按鈕
public void gotoFrame(String frameName) 激活命名幀
另一個重要的類是 net.sourceforge.jwebunit.TestContext。它為測試創建上下文?梢杂眠@個類來處理像 cookie、會話和授權之類的信息。
net.sourceforge.jwebunit.TestContext 類的重要方法
public void addCookie(String name, String value) 向測試上下文中添加 cookie。在 HttpUnitDialog 開始時,添加的 cookie 被設置到 WebConversation 上
public void setResourceBundleName(String name) 為測試上下文設置一個使用的資源綁定。用于按照 WebTester 中的鍵查找期望的值
public void setProxyName(String proxyName) 為測試上下文設置代理服務器名稱
public void setBaseUrl(String url) 為測試上下文設置基本 URL
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/