51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5171|回复: 4
打印 上一主题 下一主题

[原创] 测试数据生成工具介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-6-10 10:28:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
TestDataBuilder是一款自动化测试辅助工具
可以帮助程序开发或测试人员自动生成数据库表中的测试数据,并且具有期望的值分布和列间相关性
可以通过配置工具配置数据生成的规则,并且有一个自动配置引擎,可以根据已经存在的数据库自动生成配置文件
可以支持JDBC所支持的所有数据库类型
用户可以自己开发新数据类型
支持中、英两个语言版本,用户也可以添加自己的语言版本
支持两种外观。(JavaMetal,SystemDefault)
附带一个查询控制台,可以处理常规SQL查询操作
生成的测试数据,可以直接插入到数据表中,也可以以Insert语句形式记录在文件中
最新版本下载地址: http://sourceforge.net/project/showfiles.php?group_id=219775&package_id=265250
项目主页:http://testdatabuilder.sourceforge.net

软件使用java编写,运行该程序需要安装Java5.

下面是该程序的运行,使用示例该示例在testdatabuilder包中已经包含了)
===============================================================================

本教程使用TestDataBuilder自带的school工程生成测试数据。
先看看使用TestDataBuilder生成的测试数据吧:(下面用的外观是系统本地的)



一:先执行数据库脚本,创建数据库. 数据库脚本如下。(本教程以mysql5为例)SQL Server 脚本或使用项目目录下res\demo\tdbDemoForSqlserver.sql文件)

create database school
go
use school
go
create table teacher
(
ID varchar(255) primary key,
name varchar(255) not null,
sex varchar(10) not null,
tel varchar(255),
homeAddress varchar(255),
)
create table class
(
id varchar(255) primary key,
master varchar(255) foreign

key(master) REFERENCES teacher(id),
classRome varchar(255) not null
)
create table student
(
ID int IDENTITY primary key,
no varchar(255) not null,
name varchar(255) not null,
sex varchar(10) not null,
age int not null,
tel varchar(256),
birthday datetime,
classId varchar(255) foreign

key(classId) REFERENCES class(id),
homeAddress varchar(255),
count int
)
go


My SQL 脚本如下或使用项目目录下res\demo\tdbDemoForSqlserver.sql文件)

create database school
go
use school
go
create table teacher
(
ID varchar(255) primary key,
name varchar(255) not null,
sex varchar(10) not null,
tel varchar(255),
homeAddress varchar(255),
)
create table class
(
id varchar(255) primary key,
master varchar(255) foreign key(master) REFERENCES teacher(id),
classRome varchar(255) not null
)
create table student
(
ID int IDENTITY primary key,
no varchar(255) not null,
name varchar(255) not null,
sex varchar(10) not null,
age int not null,
tel varchar(256),
birthday datetime,
classId varchar(255) foreign key(classId) REFERENCES class(id),
homeAddress varchar(255),
count int
)
go

现在开始吧:

  • 点击菜单 工程->打开(或工具栏按钮) ,出现如下对话框:
  • 选中TestDataBuilder下面的res\demo\school目录,点击“打开”,出现如下界面:
  • school下面应该有三个表,并且都有配置数据生成规则。
  • 现在点击 数据库->默认连接,修改数据库连接.(如果你使用的SQLServer数据库,请选择MS SQL Server类型,数据库选择school)
  • 在密码栏输入你的数据库密码。
  • 点击确定.
  • 点击规则->生成测试数据.出现如下界面:
  • 图片下面是要生成的所有表信息,默认所有配置的表都会生成 测试数据。如果某些表你不需要为他生成测试数据,你只需要去掉前面的钩就行了。点击开始,开始生成测试数据。(点击开始后,开始按钮会变成停止)
  • 正在生成测试数据,只到出现如下对话框:
  • 点击确定后,回到原界面。
  • 再点击确定,回到主界面。在查询分析器中查询各表生成的数据。(本页前三图所示) ,要想生成这样的数据,其实很简单,你需要自己手动编辑规则.生成的数据一会按你的需要生成数据了.了解更多关于规则
来看看School示例工程的详细配置吧:

teacher表id列的规则,类型改为Integer,是自动增长的,从10开始往上长,加上前缀tea,生成的数据为:tea100,tea101....

teacher表homeAddress列的规则,使用自定义类型ChinaAddress,生成数据如:湖北省,武汉市。生成方法无效。

teacher表name列的规则,使用自定义类型ChineseName.生成中文姓名

teacher表sex列的规则,String类型,采用枚举值,(取值男,女,其中男女比重为2:1)

teacher表tel列的规则,类型为手机号码类型,并且在1310000000到15999999999之间。Null比例为50%.可以看看生成的数据,tel字段大约有50%为Null的。

student表age列的规则,是随机的数值,并且都在20到30之间。

student表birthday列的规则,是随机的时间值,并且都在1984-08-08 00-00-00到1987-08-08 00-00-00之间。

student表id列使用的class4student规则,使用的是sqlquery是使用语句"select id from student" 做查询的。

student表count列的规则,是随机的数值,并且都在800到900之间。

student表homeAddress列的规则,使用的是自定义类型ChinaAddress。生成中国的地址。

student表name列的规则,使用自定义类型ChineseName,生成中文名字。

student表no列的规则,是自动增长的,从10000开始到90000结束,并且有前缀BD-,生成的数据为:BD-10000,BD-10001...

student表sex列的规则,使用枚举值,取值男,女,比例为 1:1

student表tel列的规则,使用自定义类型手机号码,并且值在13100000000到15999999999之间。

class表classRome列的规则,使用随机生成的String,长度在20到40之间。

class表id列的规则,使用自动增长的Integer型,从1000开始,到9999999结束。

student表master列的规则teacher4class,使用sqlquery类型(因为是外键,需要从引用表中查出来)。


[ 本帖最后由 jie123108 于 2008-6-11 13:22 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

5#
发表于 2008-10-28 09:03:02 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-19 22:40:51 | 只看该作者
感觉不如datafactory方便
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-9-19 15:27:22 | 只看该作者

楼上的问题已经解决.

可以去下载最新的版本.
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2008-8-4 17:37:28 | 只看该作者
下载下来试用了一下 脚本
i n s e r t   i n t o   c u s p _ b a n k  
是不是编码的问题
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 08:39 , Processed in 0.086925 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表