内容摘要

HttpUnit是一个集成测试工具,主要关注Web应用的测试,提供的帮助类让测试者可以通过Java类和服务器进行交互,并且将服务器端的响应当作文本或者DOM对象进行处理。HttpUnit还提供了一个模拟Servlet容器,让你可以不需要发布Servlet,就可以对Servlet的内部代码进行测试。本文中作者将详细的介绍如何使用HttpUnit提供的类完成集成测试。

1  HttpUnit简介

HttpUnit是SourceForge下面的一个开源项目,它是基于JUnit的一个测试框架,主要关注于测试Web应用,解决使用JUnit框架无法对远程Web内容进行测试的弊端。当前的最新版本是1.5.4。为了让HtpUnit正常运行,你应该安装JDK1.3.1或者以上版本。

1.1  工作原理

HttpUnit通过模拟浏览器的行为,处理页面框架(frames),cookies,页面跳转(redirects)等。通过HttpUnit提供的功能,你可以和服务器端进行信息交互,将返回的网页内容作为普通文本、XML Dom对象或者是作为链接、页面框架、图像、表单、表格等的集合进行处理,然后使用JUnit框架进行测试,还可以导向一个新的页面,然后进行新页面的处理,这个功能使你可以处理一组在一个操作链中的页面。

1.2  和其他商业工具的对比

商业工具一般使用记录、回放的功能来实现测试,但是这里有个缺陷,就是当页面设计被修改以后,这些被记录的行为就不能重用了,需要重新录制才能继续测试。

举个例子:如果页面上有个元素最先的设计是采用单选框,这个时候你开始测试,那么这些工具记录的就是你的单项选择动作,但是如果你的设计发生了变化,比如说我改成了下拉选择,或者使用文本框接受用户输入,这时候,你以前录制的测试过程就无效了,必须要重新录制。

而HttpUnit因为关注点是这些控件的内容,所以不管你的外在表现形式如何变化,都不影响你已确定测试的可重用性。

更多的关于httpunit的信息请访问httpunit的主页http://httpunit.sourceforge.net

举例:

import org.junit.Assert;

import org.junit.Test;

import com.meterware.httpunit.GetMethodWebRequest;

import com.meterware.httpunit.WebRequest;

import com.meterware.httpunit.WebResponse;

public class DataSourceResourceTest extends ServletTest {

private static final String REQUST_URL = "http://www.meterware.com/rest/xxx/admin/datasources";

private static final String DATASOURCE = "TestConnection1";

@Test

public void testGetDataSources() {

try {

WebRequest wr = new GetMethodWebRequest(REQUST_URL);

WebResponse response = runner.getResponse(wr);

Assert.assertEquals(SUCCEED_200, response.getResponseCode());

printResponseInfo(response);

} catch (Exception e) {

Assert.fail("Get datasource failed!");

}

}

@Test

public void testCreateEmptyQuery(){

try {

WebRequest wr = new PostMethodWebRequest(REQUST_URL+"/"+QUERY_NAME);

wr.setParameter("connection", "TestConnection1");

wr.setParameter("catalog", "FoodMart");

wr.setParameter("schema", "FoodMart");

wr.setParameter("cube", "Store");

wr.setParameter("xml", "");

WebResponse response = runner.getResponse(wr);

Assert.assertEquals(SUCCEED_200, response.getResponseCode());

printResponseInfo(response);

} catch (Exception e) {

Assert.fail("Create empty query failed!");

}

}

}

httpUnit介绍及使用示例相关推荐

  1. python简单代码画曲线图教程-Python绘制折线图和散点图的详细方法介绍(代码示例)...

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  2. python画折线图代码-Python绘制折线图和散点图的详细方法介绍(代码示例)

    本篇文章给大家带来的内容是关于Python绘制折线图和散点图的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.绘制折线图和散点图要用到matplotlib ...

  3. python的命名空间_python中命名空间的三种方式介绍(附示例)

    本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...

  4. JAVA中常用接口的介绍及使用示例 java lang Comparable

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JAVA ...

  5. Linux内核 eBPF基础:kprobe原理源码分析:基本介绍与使用示例

    Linux内核 eBPF基础 kprobe原理源码分析:基本介绍与使用示例 荣涛 2021年5月11日 kprobe调试技术是为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术. 利用kpro ...

  6. 25.mc_api介绍及使用示例

    25.mc_api介绍及使用示例   使用ST FOC控制的电机开发环境MC SDK 即使用Workbench调用cubeMx生成源码工程后.进行基础的电机调试后,可以根据需要调用库函数中给出的API ...

  7. 汉字转拼音工具JPinyin的介绍和使用示例

    2019独角兽企业重金招聘Python工程师标准>>> 汉字转拼音的开源工具类包,已经出现过好几个,比如:Pinyin4J.Jpinyin等.本文主要结合JPinyin汉字转拼音的J ...

  8. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  9. ABB机器人安全板硬件功能介绍+接线方法示例

    ABB机器人安全板硬件功能介绍+接线方法示例 ABB机器人有以下几种硬件停止功能,这些均属于EN 13849-1中描述的安全类别3,该安全类别是双通道发起的停止,如果发生单通道故障(例如接线不良),则 ...

最新文章

  1. 高文、张钹、杨强隔空论道:AI精度与隐私的博弈
  2. IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
  3. cuckoo hash
  4. 阿里妈妈技术团队5篇论文入选 SIGIR 2022!
  5. 【linux系统编程】理解冯•诺依曼体系结构
  6. IOS8-人机界面指南
  7. 标准模板库(STL)之 priority_queue 列传
  8. 如何测量C#代码的运行时间
  9. Gstreamer之gst_omx_video_enc_set_format(二十七)
  10. 华为服务器重装操作系统,华为服务器安装操作系统
  11. webmax的剪切面和正对相机设置 图例
  12. Java学习笔记:案例:标准体重计算器
  13. 5G NR — 基站(Base Station)
  14. 和ChatGPT聊了聊BDOS Online,结果……
  15. jquery的设置多个 CSS 属性
  16. 微服务--Gateway--服务网关
  17. 安装系统遇到MBR的硬盘,EFI系统只能安装GPT硬盘
  18. i910980hk和r9 4900h哪个好
  19. 算法竞赛中计算机1000ms一般能运行的范围
  20. 牛人的笔记本拆装-来自百度贴吧

热门文章

  1. Siki_Unity_3-16_3D数学基础
  2. 电脑及手机端支付宝应用接入的实现
  3. 有关Mac系统的资源库文件夹
  4. 第1章 矿物加工学概述
  5. 长文梳理Muduo库核心代码及优秀编程细节剖析
  6. 艾尼克斯任命 Michael Cappello 先生为其首席商务官(CBO)
  7. 江苏扬州通报考古人员被打事件:两名城管队员已被拘
  8. 硬盘磁盘未被格式化数据怎样寻回
  9. 仿电台网站网页版html代码,DIV+CSS实现电台列表设计的示例代码
  10. vi编辑时出现E325:ATTENTION(简单易懂,快速解决问题)