繁体   English   中英

Pentaho 水壶:如何为转换/作业设置测试?

[英]Pentaho kettle: how to set up tests for transformations/jobs?

我已经使用 Pentaho Kettle 有一段时间了,以前我所做的转换和工作(使用勺子)非常简单,从数据库加载,重命名等,输入到另一个数据库的东西。 但现在我一直在做一些更复杂的计算的转换,我现在想以某种方式进行测试。

所以我想做的是:

  1. 设置一些测试数据
  2. 运行转换
  3. 验证结果数据

一种选择可能是做一个 Kettle 测试工作来测试转换。 但由于我的转换与 java 项目相关,我更愿意从 jUnit 运行测试。 所以我考虑过做一个 jUnit 测试:

  1. 设置测试数据(使用 dbunit)
  2. 运行转换(从命令行使用 kitchen.sh)
  3. 验证结果数据(使用 dbunit)

然而,这种方法需要测试数据库,这些数据库并不总是可用(oracle 等。昂贵的/遗留数据库)我更喜欢的是,如果我可以模拟或将一些存根测试数据传递给我的输入步骤。

关于如何测试 Pentaho 水壶转换的任何其他想法?

jira.pentaho.com 上的某个地方有一个 jira(我手头没有它),它正好要求这个——但可惜它还没有实现。

所以你确实有正确的解决方案 - 我还会添加 jenkins 和一个 ant 脚本来将它们联系在一起。 我在报告测试方面做了类似的事情 - 我实际上有一个 Pentaho 作业加载数据,然后它执行报告,然后将输出与已知输出进行比较并报告通过/失败。

如果您将水壶作业分为两个阶段:

  • 加载数据到流
  • 处理和更新数据

您可以使用复制行在加载数据到流步骤结束时生成结果,并从结果中获取行以在流程步骤开始时获取行。

如果这样做,那么您可以使用任何方式加载数据(kettle 转换,从 ant 脚本调用的 dbunit),并且可以模拟您想要的任何数据库表。

我用它来测试我编写的一些 ETL 脚本,它工作得很好。

您可以使用数据验证器步骤 当然不是完整的单元测试套件,但我认为有时以快速方式检查数据完整性会很有用。 您可以一次运行多个测试。

对于更“严肃”的测试,我会推荐@codek 答案并在 Jenkins 下执行您的水壶。

数据验证器步骤截图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM