用DbUnit和Anthill控制测试环境

极限编程方法的兴起将测试驱动开发和持续集成带入了主流 Java 开发实践。如果没有采用正确的工具,在 Java 服务器端开发中使用这些技术很快会成为一场噩梦。在本文中,软件开发人员 Philippe Girolami 描述了如何处理持续集成,以及如何联合使用 DbUnit 和 JUnit,以便在每次测试之前通过设置数据库状态来端到端地控制测试环境。

软件开发中最重要的一种做法就是测试。通过推荐测试优先的开发和持续集成,极限编程(Extreme Programming,XP)将这一逻辑推到了极限,在这里测试是尽可能频繁地自动进行的。不过,大多数非 XP 开发都进行了某种形式的测试,也许称为非回归测试、黑箱测试、功能测试或者其他的名字。很多项目使用关系数据库存储数据,因而所有测试策略都需要考虑在每次测试过程中数据库中所发生的事情:如果测试使测试数据库处于不一致状态,那么后面的所有测试都可能失败!一种避免这种情况的方法是在每次测试之前将数据库状态设为一个已知的相关状态。在本文中,我将介绍我们的小组是如何结合 JUnit 使用 DbUnit 做到这一点的,以及如何用 Anthill 自动生成测试报告。尽管设置看起来很费功夫,但是实际上并不是这样,并且它已经证明自己是一个有用的工具。

表示数据库内容

DbUnit 扩展了 JUnit,它使数据库在测试之间处于一种已知状态,帮助避免造成后面的测试失败或者给出错误结果的问题,如果测试会破坏数据库就会出现这些问题。它可以读取表的内容并用 FlatXmlDataSet 将它在存储为 XML,如清单 1 所示:

清单 1. FlatXmlDataSet 示例

<dataset>
 <OPERATOR
   ID='APC (Washington/Baltimore)'
   CODE='ABC5APC'
   ENCODED_STRING='aabbcc'/>
 <OPERATOR
   ID='ASA Ritabell'
   CODE='ABC6ASA R'
   ENCODED_STRING='bbccdd'/>
 <OPERATOR
   ID='Advanced Info. Service PLC'
   CODE='ABC1Adva'
   ENCODED_STRING='ccddee'/>
 <OPE_OPERATOR
   ID='Aerial Communications Inc.'
   CODE='ABC2Aeri'
   ENCODED_STRING='ddeeff'/>
</dataset>

这个数据集表示名为 OPE_OPERATOR 的数据库表中的三列,如表 1 中最后三行所描述的:

表 1. 清单 1 中数据的表定义

OPE_OPERATOR
ID INT
CODE VARCHAR
ENCODED_STRING VARCHAR

每个 XML 实体标识数据库中的一个表,而每个属性表示一列的值。

时间: 2024-09-14 05:31:25

用DbUnit和Anthill控制测试环境的相关文章

PHP在RS232串口通讯协议的应用演示[测试环境WinXP/PHP5.1.4]

php5|应用演示 一. 预先的知识: 什么是RS232/RS484及其应用?       QUOTE:RS232接口就是串口,电脑机箱后方的9芯(或25芯)插座,旁边一般有 "|O|O|" 样标识. 一般机箱有两个,新机箱有可能只有一个.笔记本电脑有可能没有. 有很多工业仪器将它作为标准通信端口.通信的内容与格式一般附在仪器的用户说明书中. 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式.由于串行通讯方式具有使用线路少.成本低,特别是在远程传输时,避免了

如何控制服务器虚拟测试环境

虚拟服务器技术被用在试生产环境,目的是节省资金.时间和人力,然而同样的工具如果未经检查就可能会导致结构复杂,资源浪费并使管理难度加大. 行业分析师和IT专业人士说,虚拟化技术解除了物理服务器测试环境的限制,实现了IT员工间的资源共享,这就使得测试工作更容易进行,但却需要进行严格的控制. Forrester调查公司的高级分析师Carey Schwaber说,"在测试环境中采用虚拟化技术的一个缺陷是影像数量的增多,特别是在通过不同操作系统测试多个结构时.环境 的控制工作必须认真进行,必须有相关政策来

测试环境搭建

1,在ubuntu上搭建测试环境 需要安装的软件: sudo chmod 400 ~/.ssh/id_rsa   sudo ./Git.sh -i ~/.ssh/id_rsa clone git@gitlab.rd.chanjet.com:chanjet_web_gov/chanjet_web.git   静态资源: sudo ~/bin/git.sh -i ~/.ssh/id_rsa clone git@gitlab.rd.chanjet.com:zhengjiang/chanjet_web.

使用API网关建立多场景测试环境

        在软件/应用系统开发过程中,系统的好坏不仅取决于架构设计.可行性分析及功能实现,还需要一套完善的测试机制来保证质量,这往往需要变换场景进行多轮测试,以保证每个隐蔽的BUG都能够被发现.那就迫使在实际的开发中有多套测试环境,比如:一套稳定的测试环境,供系统内部系统调用:多套项目环境,并行开发:还需要有一个能模拟线上的测试环境,来模拟测试.         API网关作为系统内外的分水岭,当然也不会忽视对测试环境的支持.可以通过API网关的环境管理功能来实现测试环境的管理.目前每个A

性能测试知多少---测试环境搭建

在进行性能则试前,需要完成性能测试的搭建工作,一般包括硬件环境.软件环境及网络环境,可以要求配置和开发工程师协助完成,但是作为一个优秀性能测试工程师,这也是你的必备技能之一.   性能测试环境与功能测试环境的区别                                                  那么性能测试环境与功能测试环境有什么不同呢?性能测试对测试环境的干净.独立性要求更高,更为严格.对于一个相对较规范的公司,都会建立其独立的研发环境.测试环境.线网环境(最终运行软件的环境)

docker搭建大规模测试环境的实践

内容来源:2017年4月8日,第四范式资深测试开发工程师孙高飞在"饿了么技术沙龙[第四弹]北京研发中心测试专场"进行<docker搭建大规模测试环境的实践>演讲分享.IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布. 嘉宾分享视频地址:http://t.cn/R9UCnpq 困境 当今互联网行业发展迅速,产品架构逐渐复杂,导致环境搭建困难. 测试环境不一致. 因为搭建环境困难,环境不多,所以一套环境有多人使用,容易造成环境的互相踩踏问题. 随着业务的发展和时间的积累

resiprocate使用入门:内网搭建基于repro的sipproxy测试环境

测试环境 sipproxy:repro + centos 客户端:windows电脑客户端使用X-Lite,手机andriod客户端使用linphone repro配置和启动 log的配置 如果使用默认的log配置,则log级别是INFO,且所有log都打印到标准输出.如果要输出到文件,则做如下类似配置: ######################################################## # Log settings ########################

看我如何打造Android渗透测试环境

本文讲的是看我如何打造Android渗透测试环境, 目前世界上有23亿台智能手机,预计到2020年将增长到61亿,到时全球共有73亿人,几乎每人平均有一个智能手机.因为手机可以产生大量关于携用户的个人信息,并且未来也是公司和机构的网络关键切入点,所以这意味着对智能手机的攻击,将会成为黑客的主要攻击对象. 在本文中,我将探讨如何对智能手机进行攻击的各种手段,不过攻击手段通常会因操作系统(iOS,Android,Windows Phone等)的不同而有所变化.由于Android是最广泛使用的操作系统

B/S架构测试环境搭建_DB2篇(Win32系统)

前言:前一篇分享了Oracle环境下的环境搭建和恢复,这一篇分享下DB2数据库的环境搭建,欢迎拍砖. 一.搭建测试环境: (1)新建数据库,DB2安装完成之后,在开始菜单中查看对应的信息,步骤是"开始"-->"程序"-->"IBM DB2"-->"DB2COPY"-->"一般管理工具"-->"控制中心",如下图所示: 图1,DB2启动页面 (2)打开控制中心