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

2022-09-04 04:11:02

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

所以我想做的是:

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

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

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

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

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


答案 1

jira.pentaho.com 某处有一个jira(我没有它),要求这个——但唉,它还没有实现。

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


答案 2

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

  • 加载数据以进行流
  • 处理和更新数据

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

如果这样做,则可以使用任何方法来加载数据(kettle转换,从ant脚本调用的dbunit),并且可以模拟所需的任何数据库表。

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