基于Junit的HttpUnit测试

基于Junit的HttpUnit测试看了taobaoge的junit测试教程,总结下httpunit的使用httpunit是以junit为基础的一个用来测试html页面内容的测试框架,可以测试的内容如下 1.网站或网页是否存在 2.请求参数的测试和验证 3.响应的测试和验证 4.表格的测试和验证 5.超链接的测试和验证 6.表单的测试和验证需要将httpunit里面的jars和lib目录下的所…

基于Junit的HttpUnit测试"看了taobaoge的junit测试教程,总结下httpunit的使用

httpunit是以junit为基础的一个用来测试html页面内容的测试框架,可以测试的内容如下

1.网站或网页是否存在

2.请求参数的测试和验证

3.响应的测试和验证

4.表格的测试和验证

5.超链接的测试和验证

6.表单的测试和验证

需要将httpunit里面的jars和lib目录下的所有jar包添加到项目中,并且配合junit使用

下面给出关键代码


import static org.junit.Assert.assertEquals;

import java.io.IOException;

import org.junit.Test;
import org.xml.sax.SAXException;

import com.meterware.httpunit.GetMethodWebRequest;
import com.meterware.httpunit.PostMethodWebRequest;
import com.meterware.httpunit.TableCell;
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;

/**
* 关于httpunit类使用的演示
* @author jison
* @since 2015-4-14
*/
public class HttpUnitTest {

/**
* 测试网站或网页是否存在
*/
@Test
public void webExists(){
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new GetMethodWebRequest("http://localhost:8080/HttpUnitDemo/webexists.jsp");
try {
// 响应对象,如果没有抛出异常表明网页存在
WebResponse webResponse = webConversation.getResponse(webRequest);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 把响应页面的内容拿到
*/
@Test
public void webContent(){
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new GetMethodWebRequest("http://localhost:8080/HttpUnitDemo/webexists.jsp");
try {
// 响应对象,如果没有抛出异常表明网页存在
WebResponse webResponse = webConversation.getResponse(webRequest);
// 打印响应页面的内容
System.out.println(webResponse.getText());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 请求参数的测试与验证
*/
@Test
public void webReq(){
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new GetMethodWebRequest("http://localhost:8080/HttpUnitDemo/req.jsp");
// 设置请求的参数
webRequest.setParameter("reqKey", "reqValue");
try {
// 响应对象
WebResponse webResponse = webConversation.getResponse(webRequest);
// 打印响应对象的html页面文本
System.out.println(webResponse.getText());

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 页面跳转测试1
* 与预期的请求参数相同
*/
@Test
public void webRedirect() {
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new GetMethodWebRequest("http://localhost:8080/HttpUnitDemo/redirect.jsp");
// 设置请求的参数
webRequest.setParameter("username", "user");
webRequest.setParameter("password", "pass");
try {
// 响应对象
WebResponse webResponse = webConversation.getResponse(webRequest);
// 打印响应对象的html页面文本
System.out.println(webResponse.getText());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 页面跳转测试2
* 与预期的请求参数不相同
*/
@Test
public void webRedirect2() {
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new GetMethodWebRequest("http://localhost:8080/HttpUnitDemo/redirect.jsp");
// 设置请求的参数
webRequest.setParameter("username", "use");
webRequest.setParameter("password", "pass");
try {
// 响应对象
WebResponse webResponse = webConversation.getResponse(webRequest);
// 打印响应对象的html页面文本
System.out.println(webResponse.getText());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 测试表格
*/
@Test
public void webTable(){
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 请求对象
WebRequest webRequest = new PostMethodWebRequest("http://localhost:8080/HttpUnitDemo/table.jsp");
try {
// 获取响应对象
WebResponse webResponse = webConversation.getResponse(webRequest);
// 获取表格对象
WebTable webTable = webResponse.getTables()[0];
System.out.println("获取第一个表格的第一行第二列的数据:" + webTable.getCellAsText(0, 1));
// 获取表单中第二行第二列的单元格对象
TableCell tableCell = webTable.getTableCell(1, 1);
// 断言单元格的值知否与预期的值相等
assertEquals("21", tableCell.getText());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 测试超链接
*/
@Test
public void webLink() {
// 代替浏览器作用的对象
WebConversation webConversation = new WebConversation();
// 要测试的页面的请求
WebRequest webRequest = new PostMethodWebRequest("http://localhost:8080/HttpUnitDemo/link.jsp");
try {
WebResponse webResponse = webConversation.getResponse(webRequest);
// 获取文本为“testlink”的超链接
WebLink webLink = webResponse.getLinkWith("testlink");
// 获取超链接对应的请求
WebRequest linkRequest = webLink.getRequest();
// 获取超链接点击后对应的响应
WebResponse linkResponse = webConversation.getResponse(linkRequest);
// 期望的超链接
String expectedURL = "http://localhost:8080/HttpUnitDemo/success.jsp";
// 断言是否与期望的超链接相同
assertEquals(expectedURL, linkResponse.getURL().toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

/**
* 测试表单
*/
@Test
public void webForm(){
// 获取浏览器对象
WebConversation webConversation = new WebConversation();
// 获取请求对象
WebRequest webRequest = new PostMethodWebRequest("http://localhost:8080/HttpUnitDemo/form.jsp");
try {
// 获取响应对象
WebResponse webResponse = webConversation.getResponse(webRequest);
// 获取第一个表单对象
WebForm webForm = webResponse.getForms()[0];
// 断言单行文本域的值
assertEquals("textField", webForm.getParameterValue("textField"));
// 选中的复选按钮的值为on
assertEquals("on", webForm.getParameterValue("checkboxTest"));
// 只有选中的单选按钮取得值才也设置的值一致
assertEquals("radioTest1", webForm.getParameterValue("radioTest1"));
// // 未选中的单选按钮的值与设置的值不一致
// assertEquals("radioTest2", webForm.getParameterValue("radioTest2"));
// 断言下拉列表框
assertEquals("option2", webForm.getParameterValue("selectTest"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

今天的文章基于Junit的HttpUnit测试分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31430.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注