我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?
Posted
技术标签:
【中文标题】我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?【英文标题】:How should I perform automated testing of SQL ETL Scripts & SPROCs? 【发布时间】:2012-01-13 14:04:07 【问题描述】:我们有许多 DTSX 包,可以从许多旧的普遍数据库中提取-转换-加载数据 -> SQL Server 2k8 R2。 (通过 ODBC)
我们的大部分 ETL 流程 T-SQL 脚本
遗留数据是一个结构糟糕的混乱,而且我们对 ETL 脚本所做的调整和更改通常是为了处理这些格式错误的数据。
我们想做的是建立一些流程来自动测试执行这些转换的这些 SPROCS / 脚本。
我们自己想出的是:
有一些已知的数据源输入(托管在本地普及型数据库中) 运行 DTSX 包以生成输出 在 SQL Server 的其他地方有一些预期的和预先创建的输出。 编写我们自己的验证脚本,将预期值与实际值进行比较。只是想知道是否还有其他我们应该考虑的进程/系统/数据库测试应用程序。
【问题讨论】:
这可能会有所帮助 abit ***.com/questions/1007701/… 【参考方案1】:看看tSQLt - the Database Unit Testing Framework for SQL Server。它使编写健壮的测试变得相当容易。
它(还)不允许测试脚本,但您可以将它们包装到存储过程中。
【讨论】:
非常感谢塞巴斯蒂安。我们已经开始使用这个框架,它似乎可以满足我们的需要。【参考方案2】:遗留数据库总是具有挑战性的。
我建议您看一下这篇文章:http://quality-gates.com/?p=1284,其中我介绍了在不同层验证 ETL 流程需要完成的基本测试:操作、数据仓库等。
我们选择在我们的项目中使用质量门。由于它不是 ETL 的一部分,因此它使验证变得清晰和客观。在我看来,就像您正在寻找的一样。
【讨论】:
以上是关于我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?的主要内容,如果未能解决你的问题,请参考以下文章
从我的 LINQ to SQL 中调用 UDF 和 sproc 的效率如何?