有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

所以我想做的是:

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

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

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

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

关于如何测试Pentaho水壶转换还有其他想法吗


共 (3) 个答案

  1. # 1 楼答案

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

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

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

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

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

  2. # 2 楼答案

    在吉拉的某个地方有一个吉拉。宾塔霍。com(我手头没有)的要求正是这一点,但可惜它还没有实现

    因此,您确实想到了正确的解决方案——我还将添加jenkins和ant脚本来将其结合在一起。我在报告测试中也做过类似的事情——实际上我有一个pentaho作业加载数据,然后它执行报告,然后将输出与已知输出进行比较,并报告通过/失败

  3. # 3 楼答案

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

    对于更“严肃”的测试,我将推荐@codek answer并在詹金斯领导下执行您的水壶

    data validator step screenshot