基本上,動態夾具測試與靜態夾具測試相同,但我們不是使用靜態夾具作為輸入,而是即時抓取資料。這樣,我們不僅可以檢查解析器,還可以檢查抓取工具和佈局。
動態裝置測試比靜態裝置測試更複雜,因為它們需要即時抓取數據,然後使用抓取的數據運行解析器。這意味著我們需要在測試運行中啟動抓取工具和解析器並管理它們之間的資料流。這正是 Dagster 可以發揮作用的地方。
Dagster 是一個協調器,可以幫助我們管理抓取 台灣數據 工具和解析器之間的資料流。
動態夾具測試的步驟
過程主要有四個步驟:
將我們要抓取的 URL 加入佇列
刮
解析
根據已儲存的裝置檢查已解析的文檔
最後一步與靜態夾具測試相同,唯一的差異是我們不使用靜態夾具,而是在測試運行期間抓取資料。
動態固定測試在我們的資料品質保證過程中起著非常重要的作用,因為它們同時檢查抓取器和解析器。此外,它們還可以幫助我們了解頁面佈局是否發生了變化,而這在靜態裝置測試中是不可能的。這就是為什麼我們按計劃運行動態裝置測試而不是在 CI/CD 管道中的每個合併請求上運行它們的原因。
然而,動態夾具測試確實有一個相當大的限制。他們只能檢查我們能夠控制的配置檔案的資料品質。例如,如果我們不控制測試中使用的配置文件,我們就無法知道會得到什麼數據,因為它隨時都可能發生變化。這意味著動態裝置測試只能檢查我們有設定檔的網站的資料品質。為了克服這個限制,我們進行了動態覆蓋測試。
動態覆蓋測試
動態覆蓋測試也屬於動態資料類別,但它們在檢查內容方面與動態夾具測試有所不同。雖然動態夾具測試可以檢查我們可以控制的設定檔的資料質量,但這非常有限,因為不可能在所有目標中都做到這一點,而動態覆蓋測試可以檢查資料品質而無需控製設定檔。這是可能的,因為動態覆蓋測試不檢查精確的值,而是根據我們定義的一組規則檢查這些值。這就是《遠大前程》的由來。
動態覆蓋測試是我們資料品質保證過程中最複雜的測試。 Dagster 也將它們編排為動態裝置測試。不過,我們在這裡使用 Great Expectations 而不是簡單的 Python 腳本來執行測試。
首先,我們需要選擇我們想要測試的設定檔。通常,我們會從資料庫中選擇具有高領域覆蓋率的設定檔。我們這樣做是因為我們希望確保測試涵蓋盡可能多的領域。然後,我們使用 Great Expectations 根據選定的設定檔產生規則。這些規則基本上是我們想要根據資料檢查的約束。以下是一些範例:
所有個人資料都必須有一個名稱。
至少 50% 的個人資料必須有姓氏。
教育計數值不能低於0。
動態覆蓋測試的步驟