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