在数据库中创建测试数据
我知道那里有一些测试数据生成器,但是大多数似乎只是填充名称和地址样式数据库[随时可以纠正我]。
我们有一个大型的集成和规范化的应用程序,例如发票具有链接到库存表的零件号,链接到客户表的客户号,链接到审计信息的变更日志等,显然很难随机填写。当前,我们对真实生活的数据进行模糊处理以获取测试数据(但效果不是很好)。
我们使用什么工具\方法来创建大量数据进行测试?
解决方案
回答
在我工作的地方,我们使用RedGate Data Generator生成测试数据。
由于我们在银行领域工作。当我们必须使用名义数据(信用卡号,个人ID,电话号码)时,我们开发了可以屏蔽这些数据库字段的应用程序,因此我们可以将它们作为真实数据使用。
我可以说,借助Redgate,我们可以自定义BD中每个表的每个字段,从而接近生产服务器上真实数据的外观。
回答
乔尔还在11号播客中提到RedGate
回答
Red Gate产品很好...但不是完美的。
我发现编写自己的工具来生成数据时做得更好。我想生成客户时会用它...但是如果我们要模拟客户可能会参与的随机性(例如创建订单),这并不太好。
我认为,本地开发的工具将提供最"现实"的数据。
回答
我们可以使用VSTS数据库版(使用最新的2008 Power工具)生成数据计划。
它包括一个数据生成向导,该向导可通过指向现有数据库来自动生成数据,从而使我们获得切合实际但包含完全不同数据的数据
回答
我刚刚完成了一个创建3,500,000多个健康保险理赔项目的项目。由于HIPPA和PHI的限制,甚至使用清理后的真实数据也是PITA。为此,我使用了一个名为Datatect的工具(http://www.datatect.com/)。
我喜欢此工具的一些方面:
- 使用ODBC,因此我们可以将数据生成到任何ODBC数据源中。我已将此用于Oracle,SQL和MS Access数据库,平面文件和Excel电子表格。
- 可通过VBScript扩展。我们可以在数据生成工作流的各个部分编写钩子,以扩展工具的功能。我使用此功能来"同步"数据库中的相关列,并控制值的频率分布以与实际观察到的频率一致。
- 引用意识。填充外键列时,从父表中提取有效键。
回答
我使用了自己的数据生成器,该数据生成器生成符合正则表达式的随机数据。基本思想是使用验证规则两次。首先,我们使用它们来生成有效的随机数据,然后使用它们来验证生产中的新输入。
我说过对该实用程序进行了重写,因为它似乎是一个不错的学习项目。可以在googlecode上找到。