原址:http://blog.csdn.net/plainfield/archive/2007/07/02/1675546.aspx

JwebUnit加构在HttpUnit上,实际上也可以这么说是HttpUnit的高一层API封装,用户使用它不必像使用HttpUnit那么麻烦。一直到今天,JwebUnit已经不更新了,HttpUnit仍旧蓬勃的发展着,作为我曾经深入使用过的测试工具,我觉得非常有必要写点什么东西出来。

如果你想下载 JWebUnit 可以点击下面这个链接 http://sourceforge.net/projects/jwebunit

JWebUnit的编译需要下面几个包的支持:

HttpUnit Java library for the automatic stimulation and testing of web applications. 下载

Rhino Javascript implementation in Java used by httpunit. Only needed if javascript in target application must be tested.下载

nekohtml Java html parser and beautifier used by httpunit.下载

JUnit Java unit testing framework.下载

Apache XML API Common XML stuff needed by Tidy/HttpUnit.下载

Xerces xml parser Needed for Httpunit/neko.下载

快速应用

jWebUnit大致有两种方式建立测试用例:继承模式和委托模式,下面这种是用户测试用例代码使用继承模式继承jWebUnit提供的WebTestCase类,该类继承与junit.framework.TestCase类,代码示例如下:

import net.sourceforge.jwebunit.WebTestCase;

public class ExampleWebTestCase extends WebTestCase {
public ExampleWebTestCase(String name) {
    super(name);
}
}

委托模式的实现比上面的正统方式实现曲折了一点,代码示例如下:

import junit.framework.TestCase;
import net.sourceforge.jwebunit.WebTester;

public class ExampleWebTestCase extends TestCase {
private WebTester tester;

public ExampleWebTestCase(String name) {
    super(name);
    tester = new WebTester();
}
}

用户测试用例代码继承了junit.framework.TestCase类,在该类的全局变量里声明了一个WebTester类,该类属于jwebunit封装了一些拟人的Web操作动作等,在ExampleWebTestCase 构造方法中将WebTester实例化。委托模式有个好处,代码表现上很干净,测试动作和被测试业务代码将被表现的异常清晰,有利于后期的测试开发迭代。

触摸我们的第一个被测试网站

如果我的被测试Web网站的地址为:http://127.0.0.1/hello,那么我们可以这样让jwebunit接触它,示例代码如下:

public ExampleWebTestCase(String name) {
super(name);
getTestContext().setBaseUrl("http://127.0.0.1/hello");
}

其实Junit里面提供了测试前置资源设置方法,我们也可以这样写:

public ExampleWebTestCase(String name) {
super(name);
}

public void setUp() throws Exception {
getTestContext().setBaseUrl("http://127.0.0.1/hello");
}

这样做的好处是让资源和被测试代码分离,不要相互干扰。

上面的setBaseUrl("http://127.0.0.1/hello")只是帮助jwebunit指定到了被测试项目的位置,大部分网站根据应用服务器设置会自动让这样的访问定位到某页面上,例如:http://127.0.0.1/hello/index.jsp。如果我们想明确指定某个页面进入,那么你需要这么做,示例代码如下:

beginAt("/index.jsp");

这样,jwebunit就得到了明确的测试切入页面,测试开始了!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/plainfield/archive/2007/07/02/1675546.aspx

(转载)JWebUnit做Web项目自动化测试的更多相关文章

  1. 做web项目时对代码改动后浏览器端不生效的应对方法(持续更新)

    做web项目时,常常会遇到改动了代码,但浏览器端没有生效,原因是多种多样的,我会依据我遇到的情况逐步更新解决的方法 1.执行的时候採用debug模式,普通情况下使用项目部署button右边那个butt ...

  2. 做web项目时对代码修改后浏览器端不生效的应对方法(持续更新)

    做web项目时,经常会遇到修改了代码,但浏览器端没有生效,原因是多种多样的,我会根据我遇到的情况逐步更新解决办法 1.运行的时候采用debug模式,一般情况下使用项目部署按钮右边那个按钮下的tomca ...

  3. java做web项目比较多

    WEB就是轻量级:如果要炫,FLEX或即将普及的html5.0都能做到像C/S那样. java做web项目比较多:如果是桌面程序,还是走C/S比较成熟. 如果是B/S架构的,后台还是JAVA,前台可以 ...

  4. 三、自动化测试平台搭建-django-如何用mysql数据库做web项目

    从这节开始到后面说的大概内容如下: 这里说的是Django做一个web项目的大概框架,从下篇具体说Django中的模型(查询..),视图(请求,响应,cookie,session..),模板(验证码, ...

  5. web项目自动化测试方案预研

    一.  网上方案整理 Watir.Watir-Webdriver.Selenium2.QTP区别 Waitr与Watir-WebDriver有什么区别? Watir是非常优秀的一款自动化测试工具.其使 ...

  6. 抒发一下这些天用django做web项目的一些体会

    最近接触了一段时间的python,觉得python写脚本还是挺方便的,做一个简单的桌面应用也很nice,但是随着深入,对python做功能复杂的web项目我彻底死心了​,每个环节都是一堆的坑,部署阶段 ...

  7. selenium+java+eclipse web项目自动化测试环境搭建

    一.java的安装与环境配置 1.下载JDK(Java Development Kit),下载地址 www.oracle.com 2.安装jdk(傻瓜式安装) 3.安装完成后,配置环境变量,步骤: ( ...

  8. 转载 Log4j2在WEB项目中配置

    最近决定在新WEB项目中使用新的日志系统Log4j2. 官方介绍和学习文档网址为http://logging.apache.org/log4j/2.x/ 首先在WEB项目中引入以下几个jar包: ① ...

  9. 转载:java web 项目中如何设置项目打开的默认页面

    通过博客学到的两种方法总结: 一.在web.xml文件中加入: 此时项目打开的默认页面就是loginS.html 二.在WebContent文件夹下添加index.jsp文件,此时这个index.js ...

随机推荐

  1. [leetcode]Merge Sorted Array @ Python

    原题地址:https://oj.leetcode.com/problems/merge-sorted-array/ 题意:Given two sorted integer arrays A and B ...

  2. iOS开发-邮件发送

    Web开发的时候邮箱注册登录是必不可少的,手机号可以更换,不过相对而言,邮箱只是用于比较重要的时候用到,比如找工作的时候必填的邮箱,注册网站会员的邮箱验证.现在的手机和Web的其实操作是一样的,大多数 ...

  3. 超酷实用的jQuery焦点图赏析及源码

    焦点图应用在现代网页中使用十分广泛,有注重简单小巧的,也有注重华丽美观的,大部分jQuery焦点图都可以滑动和切换图片,并且在切换图片时产生不同的动画特效.今天我们要分享一些超酷而且实用的jQuery ...

  4. js命名空间写法

    很早知道这种写法,由于基础面向对象不够扎实一直在回避,但是面对整站这种方法还是有必要会 <div id="div1">111</div> <div i ...

  5. WebView&HTML5-----使用WebView播放HTML5视频文件

    一.问题描述 HTML5提供了很多新的特性比如,视频播放.web本地存储.地理定位.应用缓存.Canvas等,但这些特性需要浏览器的支持,在Android应用中我们可以使用WebView构建Web应用 ...

  6. mysql 字符串按照数字类型排序

    一个varchar,char的字段 存放 1+,12- ,11等字符串将字段*1或者+0可以将MySQL字符串字段按数值排序 order by 字段名称+0 desc/asc的形式进行排序 order ...

  7. 【大数据】基于Hadoop的HBase的安装(转)

    https://note.youdao.com/share/?id=c27485373a08517f7ad2e7ec901cd8d5&type=note#/ 安装前先确认HBse和Hadoop ...

  8. EF 数据类型 0xA7 的数据长度或元数据长度无效

    测试方法 TestProject1.SysTest.HtmlAnalysisTest12 引发异常:  System.Data.UpdateException: 更新项时出错.有关详细信息,请参阅“I ...

  9. 关于ThinkPhp中getField方法存在的问题

    在ThinkPhp中我们可以通过以下方式获取数据库数据 query:直接执行SQL查询操作 find:查询单选数据集 getField查询字段值 select:查询数据集 其他......   但今天 ...

  10. 7.4 Javascript:表单验证-揭开正則表達式的面纱

    用元字符匹配对应的字符类型 创建正則表達式有点像创建字符串字面量,仅仅只是正則表達式出如今一对"/"里 正則表達式中会用到一级元字符.用于连接字母与数字 "." ...