51Testing软件测试论坛

标题: 测试数据生成工具介绍 [打印本页]

作者: jie123108    时间: 2008-6-10 10:28
标题: 测试数据生成工具介绍
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

现在开始吧:

来看看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 编辑 ]
作者: fzdxwmq    时间: 2008-8-4 17:37
下载下来试用了一下 脚本
i n s e r t   i n t o   c u s p _ b a n k  
是不是编码的问题
作者: jie123108    时间: 2008-9-19 15:27
标题: 楼上的问题已经解决.
可以去下载最新的版本.
作者: 云层    时间: 2008-9-19 22:40
感觉不如datafactory方便
作者: picture    时间: 2008-10-28 09:03
http://bbs.51testing.com/thread-125481-1-2.html
这个工具也不错




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2