(1)環(huán)境設(shè)置:導(dǎo)入HttpUnit
(2)開始實(shí)踐,寫一個(gè)測(cè)試接口,起名為L(zhǎng)oginTestInf:
請(qǐng)/*
* Created on 2004-12-17
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.apollo.test.util;
/**
* @author SixSun
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
*測(cè)試用例編號(hào) : 0001
*測(cè)試用例名稱 : HttpUnit 登陸驗(yàn)證測(cè)試用例
*測(cè)試目標(biāo) : 驗(yàn)證用戶登陸是否成功
*測(cè)試過程 :
*1、輸入登陸地址的頁(yè)面地址,驗(yàn)證該頁(yè)面是否可被正常訪問。
*2、驗(yàn)證被訪問的頁(yè)面是否是登陸頁(yè)面。
*3、輸入非法用戶名、密碼,驗(yàn)證登陸失敗。
*4、輸入合法用戶名、密碼,驗(yàn)證登陸成功。
*/
public interface LoginTestInf {
public void testValidPage() throws Exception;
public void testIsLoginPage() throws Exception;
public void testBadLogin() throws Exception;
public void testGoodLogin() throws Exception;
}
(3)實(shí)現(xiàn)一個(gè)Junit TestCase 同時(shí) implements LoginTestInf 接口:
/*
* Created on 2004-12-17
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.apollo.test.util;
import java.net.URL;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.WebResponse;
import com.meterware.httpunit.WebForm;
import com.meterware.httpunit.GetMethodWebRequest;
import org.apollo.test.util.LoginTestInf;
/**
* @author sixsun
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class LoginTest extends TestCase implements LoginTestInf {
private String username = "suibian";
private String password = "suibian";
private WebConversation browser;
private WebRequest requestIndex;
private WebRequest requestLogin;
private WebResponse responseIndex;
private WebResponse responseLogin;
private String urlSystem = "系統(tǒng)首頁(yè)網(wǎng)址";
private String urlLogin = "登陸界面網(wǎng)址";
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
browser = new WebConversation();
requestIndex = new GetMethodWebRequest(urlSystem);
responseIndex = browser.getResponse(requestIndex);
requestLogin = new GetMethodWebRequest(urlLogin);
responseLogin = browser.getResponse(requestLogin);
}
//輸入登陸地址的頁(yè)面地址,驗(yàn)證該頁(yè)面是否可被正常訪問
public void testValidPage() throws Exception{
assertNotNull("zsonline在網(wǎng)絡(luò)上不存在!",responseIndex);
}
//驗(yàn)證被訪問的頁(yè)面是否是登陸頁(yè)面
public void testIsLoginPage() throws Exception{
URL currentUrl = responseLogin.getURL();
String currentUrlStr = currentUrl.getProtocol() + "://" +currentUrl.getHost() + currentUrl.getPath();
assertEquals("登陸頁(yè)面不是zsonline首頁(yè)!" ,currentUrlStr,urlLogin);
}
//輸入非法用戶名、密碼,驗(yàn)證登陸失敗
public void testBadLogin() throws Exception{
WebForm form = responseLogin.getForms()[0];
form.setParameter("username","badname");
form.setParameter("password","badpassword");
requestLogin = form.getRequest();
responseLogin = browser.getResponse(requestLogin);
assertTrue("用戶名不存在,請(qǐng)確認(rèn)用戶名輸入是否完全正確(區(qū)分大小寫)!",
responseLogin.getText().indexOf("用戶名不存在,請(qǐng)確認(rèn)用戶名輸入是否完全正確(區(qū)分大小寫)!") != -1);
}
//輸入合法用戶名、密碼,驗(yàn)證登陸成功
public void testGoodLogin() throws Exception{
WebForm form = responseLogin.getForms()[0];
form.setParameter("username",username);
form.setParameter("password",password);//此處需要填寫真實(shí)密碼
requestLogin = form.getRequest();
responseLogin = browser.getResponse(requestLogin);
assertTrue("轉(zhuǎn)到'zsonline'【suibian】用戶首頁(yè)失!",responseLogin.getText().indexOf("用戶測(cè)試用戶_zsonline,您好!") != -1);
}
public static TestSuite suite(){
return new TestSuite(LoginTest.class);
}
public static void main(String args[]){
TestRunner.run(suite());
}
}