簡體   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