+ 首页>>工具>>单元测试工具>>内容

工具HttpUnit和JWebUnit500+次围观

HttpUnit是一个集成测试工具,主要关注Web应用的测试,提供的帮助类让测试者可以通过Java类和服务器进行交互,并且将服务器端的响应当作文 本或者DOM对象进行处理。HttpUnit还提供了一个模拟Servlet容器,让你可以不需要发布Servlet,就可以对Servlet的内部代码 进行测试。
jWebUnit是基于java的测试网络程序的框架。它提供了一套测试见证和程序导航标准。jWebUnit有JUnit和HttpUnit实现。

HttpUnit Demo

package com.kiven.test;

import java.io.IOException;
import java.net.MalformedURLException;

import org.xml.sax.SAXException;

import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.PostMethodWebRequest;
import com.meterware.httpunit.WebConversation;
import com.meterware.httpunit.WebForm;
import com.meterware.httpunit.WebLink;
import com.meterware.httpunit.WebRequest;
import com.meterware.httpunit.WebResponse;
import com.meterware.httpunit.WebTable;

public class HttpUnitTestSample {
	static String url = "http://www.baidu.com";
		
	public static void main(String args[]) throws MalformedURLException, IOException, SAXException{
		//testGetHtmlContent();
		//testHtmlContentForm();
		//testGetMethod();
		testMethod();
	}
	
	//页面内容测试
	public static void testGetHtmlContent() throws IOException, SAXException{
		System.out.println("获取页面内容");
		//建立一个WebConversation实例
		WebConversation wc = new WebConversation();
		//向指定的URL发出请求,获取响应
		WebResponse wr = wc.getResponse(url);
		// 用getText方法获取相应的全部内容  
	    System.out.println(wr.getText());  
	}
	
	
	
	/** 
     * 用get方法获取页面内容 
     * @throws MalformedURLException 
     * @throws IOException 
     * @throws SAXException 
     */  
    public static void testGetMethod() throws MalformedURLException,IOException, SAXException {  
        System.out.println("向服务器发送数据,然后获取网页内容:");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 向指定的URL发出请求  
        WebRequest req = new GetMethodWebRequest(url);  
        // 给请求加上参数  
        req.setParameter("query", "四氯化碳");  
        // 获取响应对象  
        WebResponse resp = wc.getResponse(req);  
  
        // 用getText方法获取相应的全部内容  
        // 用System.out.println将获取的内容打印在控制台上  
        System.out.println(resp.getText());
  
    }  
    
    
    /**
     * get方法获取页面内容
     * 无参数
     * @throws IOException
     * @throws SAXException
     */
    public static void testMethod() throws IOException, SAXException{
    	System.out.println("Get方法获取网页内容");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 向指定的URL发出请求 
        WebRequest getReq = new GetMethodWebRequest(url);
        // 获取响应对象  
        WebResponse resp = wc.getResponse(getReq);
        
        //System.out.println(resp);
        // 用getText方法获取相应的全部内容  
        // 用System.out.println将获取的内容打印在控制台上  
        System.out.println(resp.getText());
    }
  
    /** 
     * 用post方法获取页面内容 
     * @throws MalformedURLException 
     * @throws IOException 
     * @throws SAXException 
     */  
    public static void testPostMethod() throws MalformedURLException, IOException, SAXException {  
        System.out.println("使用Post方式向服务器发送数据,然后获取网页内容:");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 向指定的URL发出请求  
        WebRequest req = new PostMethodWebRequest("http://localhost:8080/test.html");  
        // 给请求加上参数  
        req.setParameter("user_name", "test");  
        req.setParameter("password", "111111");  
        // 获取响应对象  
        WebResponse resp = wc.getResponse(req);  
  
        // 用getText方法获取相应的全部内容  
        // 用System.out.println将获取的内容打印在控制台上  
        System.out.println(resp.getText());  
    }  
  
      
    /** 
     * 获取页面链接并模拟点击 
     * @throws MalformedURLException 
     * @throws IOException 
     * @throws SAXException 
     */  
    public static void testClickLink() throws MalformedURLException,  
            IOException, SAXException {  
        System.out.println("获取页面中链接指向页面的内容:");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 获取响应对象  
        WebResponse resp = wc.getResponse(url);  
        // 获得页面链接对象  
        WebLink link = resp.getLinkWith("新闻");  
        // 模拟用户单击事件  
        link.click();  
        // 获得当前的响应对象  
        WebResponse nextLink = wc.getCurrentPage();  
  
        // 用getText方法获取相应的全部内容  
        // 用System.out.println将获取的内容打印在控制台上  
        System.out.println(nextLink.getText());  
  
    }  
  
    /** 
     * 获取页面内容的table内容 
     * @throws MalformedURLException 
     * @throws IOException 
     * @throws SAXException 
     */  
    public static void testTableContent() throws MalformedURLException,  
            IOException, SAXException {  
        System.out.println("获取页面中表格的内容:");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 获取响应对象  
        WebResponse resp = wc.getResponse(url);  
  
        System.out.println(resp.getText());  
        // 获得对应的表格对象  
        WebTable webTable = resp.getTables()[0];  
        // 将表格对象的内容传递给字符串数组  
        String[][] datas = webTable.asText();  
        // 循环显示表格内容  
        int i = 0, j = 0;  
        int m = datas[0].length;  
        int n = datas.length;  
        while (i < n) {  
            j = 0;  
            while (j < m) {  
                System.out.println("表格中第" + (i + 1) + "行第" + (j + 1) + "列的内容是:"  
                        + datas[i][j]);  
                ++j;  
            }  
            ++i;  
        }  
    }  
  
    /** 
     * 获取页面的表单控件内容 
     * @throws MalformedURLException 
     * @throws IOException 
     * @throws SAXException 
     */  
    public static void testHtmlContentForm() throws MalformedURLException,  
            IOException, SAXException {  
        System.out.println("获取页面中表单的内容:");  
        // 建立一个WebConversation实例  
        WebConversation wc = new WebConversation();  
        // 获取响应对象  
        WebResponse resp = wc.getResponse(url);  
  
        System.out.println(resp.getText());  
        // 获得对应的表单对象  
        WebForm webForm = resp.getForms()[1];  
        // 获得表单中所有控件的名字  
        String[] pNames = webForm.getParameterNames();  
        int i = 0;  
        int m = pNames.length;  
        // 循环显示表单中所有控件的内容  
        while (i < m) {  
            System.out.println("第" + (i + 1) + "个控件的名字是" + pNames[i] + ",里面的内容是" + (webForm.getParameterValues(pNames[i])));  
            ++i;  
        }  
    }


}

JWebUnit Demo

public class ExampleWebTestCase extends WebTestCase {
	public void setUp() {
		super.setUp();
		setBaseUrl("http://localhost:8080/test");
	}
	public void test1() {
		beginAt("/home");
		clickLink("login");
		assertTitleEquals("Login");
		setTextField("username", "test");
		setTextField("password", "test123");
		submit();
		assertTitleEquals("Welcome, test!");
	}
}

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 发表评论

Copyright © 2014 DiggerPlus. 87 queries in 1.129 seconds.
使用合作网站账号快速登录,更多精彩等着您: 开源中国