大量测试数据填充数据库
文章目录
TestDataBuilder
TestDataBuilder是一个采用Java编写的,完全开源,免费的测试数据生成工具,图形化界面。
Readme:http://testdatabuilder.sourceforge.net/
但是先别急,这个软件有点老,最后一次更新在2013-04-11,看它的驱动:mysql版本在5.1.6,SqlServer仅支持2000~2005,相比学校的SQL Server 2008还要老。
如果愿意维护,倒是应该挺好用的。来让我们看下一个。
datafaker
datafaker是一个大批量测试数据和流测试数据生成工具,兼容python2.7和python3.4+,命令行模式。
github:https://github.com/gangly/datafaker/blob/master/doc/zh_CN/README.md
相关使用方法在github上已写,我只写下自己用的且github上没有举例的datafaker+sqlserver
从本地文件meta.txt中读取元数据,构造并显示在屏幕上
问题
连接数据库并在数据库中构造数据
datafaker rdb mssql+pyodbc://sa:123456@localhost:1433/test s 10 --meta meta.txt
参数解释
dbtype: 数据源类型, "rdb",
connect: 数据源连接信息, "mssql+pyodbc://sa:123456@localhost:1433/test",
table: 表名, "s",
num: 数据条数, "10",
meta: 元数据文件, "--meta meta.txt",
outprint: 是否在屏幕打印, "--outprint"
更多参数见命令行参数
不连接数据库,构造数据从屏幕中输出
datafaker rdb mssql+pyodbc://sa:123456@localhost:1433/test s 10 --outprint --meta meta.txt
如果参照github上的例子,我们也许会像上面第一个例子这样做(在屏幕中输出因为不连接数据库,所以可以展现构造的数据),但经实测发现,怎么也连不上,提示找不到数据源及驱动。
查找解决方案
使用pymssql
有人说pyodbc无法连接sqlserver,要用pymssql(pymssql是python的一个第三方库,是用来连接sql server数据库并对库中数据进行操作的一个工具),的确,我尝试后可以成功运行。
datafaker rdb mssql+pymssql://sa:123456@PRIME\MSSQLSERVER01/test s 10 --meta meta.txt
参数说明
connect: 数据源连接信息, "mssql+pymssql://sa:123456@PRIME\MSSQLSERVER01/test",
如下图所示,如果这里是PRIME\MSSQLSERVER01,则在@后填写这样的字段,后面加'/',再加表名
但尝试插入数据到远程数据库时插入的中文变成了乱码,不知如何解决。
使用ODBC数据源
然后一直下一步
测试成功即可
datafaker rdb mssql+pyodbc://sa:123456@MSSQLSERVER01 s 10 --meta s.txt
解释
@后面填写刚才新建的ODBC数据源的名称,我这里是"MSSQLSERVER01"
远程数据库同理,在ODBC数据源里新建一个,然后用同样的方法连接。
其他问题
- 在SQLServer中要设置数据库允许用户名和密码登录,允许远程连接,还可能需要在防火墙创建一个新的TCP入站规则,请自行查询。