博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转载)JWebUnit做Web项目自动化测试
阅读量:6653 次
发布时间:2019-06-25

本文共 1867 字,大约阅读时间需要 6 分钟。

原址:

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

如果你想下载 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网站的地址为:,那么我们可以这样让jwebunit接触它,示例代码如下:

public ExampleWebTestCase(String name) {

super(name);
getTestContext().setBaseUrl("");
}

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

public ExampleWebTestCase(String name) {

super(name);
}

public void setUp() throws Exception {

getTestContext().setBaseUrl("");
}

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

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

beginAt("/index.jsp");

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

本文来自CSDN博客,转载请标明出处:

你可能感兴趣的文章
一、认识jquery jquery风暴入门代码实例不能运行
查看>>
后台项目问题+解决方法(一){v-for过滤器+三目运算}
查看>>
selenium模块 当然可以用来测试啦
查看>>
论文笔记:Ten years of pedestrian detection, what have we learned?
查看>>
PIE SDK地图图层控制
查看>>
WEB应用服务架构的演变(扫盲)
查看>>
编写一个函数,计算三个数字的大小,按从小到大的顺序输出。
查看>>
学习《SQL Server 2005管理员大全》时遇到的困难
查看>>
CCIE路由实验(8) -- QoS
查看>>
CPU利用率与Load Average的区别?
查看>>
CF600E:Lomsat gelral(线段树合并)
查看>>
Spring中的p标签(转)
查看>>
如何延长WP7软件第一屏splashimage.jpg的显示时间
查看>>
秘诀!支付宝支撑双十一4200万次/秒的数据库请求峰值的技术实现
查看>>
存储过程: 存储过程(stored procedure)有时也称为sproc。存储过程存储于数据库中而不是在单独的文件中,有输入参数、输出参数以及返回值等。...
查看>>
java中方法复写的作用进一步理解
查看>>
50个常用的Linux命令(三)awk
查看>>
mysql异常com.mysql.jdbc.PacketTooBigException
查看>>
selenium无界面chromedriver
查看>>
Hibernate入门案例及增删改查
查看>>