隨著分散式應用程式趨勢的持續,測試 Java 應用程式變得越來越複雜。分散式系統涉及大量微服務,因此確保所有元件的一致性、管理故障和驗證資料完整性至關重要。全面的端到端測試對於保證應用程式按預期運行至關重要。
行為驅動開發 (BDD) 透過以自然語言定義應用程式行為、簡化分散式應用程式測試案例的解釋和理解來解決這些挑戰。
然而,將 BDD 整合到測試分散式 Java 應用程式中也帶來了一系列挑戰。維護多個服務的 BDD 場景、編排測試環境以及管理服務和測試資料可能是一項艱鉅的任務。
在這篇部落格文章中,我們將探討 Testkube 如何使用 Cucumber 簡化分散式 Java 應用程式的 BDD 測試,使流程更有效率且易於管理。
Cucumber 是廣泛使用的 BDD 測試工具之一。它使用 Gherkin,允許團隊使用自然語言定義應用程式功能。它支援不同的程式語言,包括 Java。它還與流行的開發框架很好地集成,使其成為流行的選擇。最後,它會產生詳細的報告,讓您深入了解測試。
雖然 Cucumber 是實現 BDD 的絕佳工具,但在測試分散式應用程式時,尤其是在 Kubernetes 環境中,它面臨挑戰。
處理測試資料可能令人畏懼,尤其是在像 Kubernetes 這樣的分散式環境中。 Cucumber 需要在步驟之間共享狀態和測試數據,因此確保隔離既複雜又至關重要。
運算、記憶體和儲存等資源在 Kubernetes 中動態配置。 Cucumber 需要存取這些資源,而配置這一點很困難。
聚合分散式 Cucumber 測試運行的測試結果具有挑戰性,可能需要額外的設定才能將所有這些結果放在一個儀表板下。
雖然 Kubernetes 可以自動化部署、擴充和應用程式管理,但它增加了一個額外的抽象層,需要與配置 Cucumber 一起管理它。這就是像 Testkube 這樣的工具發揮作用的地方。
Testkube 提供了專為 Kubernetes 建構的統一測試框架,以簡化和精簡整個測試流程。測試團隊可以在 Kubernetes 叢集上儲存、執行和管理測試。它將測試定義為 Kubernetes CRD,以提供現代解決方案來管理所有測試並在需要時進行擴展。
使用 Testkube,您可以建立測試工作流程,其中包括從配置必要的基礎架構元件到與其他測試工具無縫整合以及編排複雜測試的所有內容。請參閱我們的測試工作流程以了解更多資訊。
讓我們看看如何使用 Cucumber 和 Testkube 進行 BDD 檢定。我們將使用 Gradle 建立一個測試工作流程並將 Cucumber 測試整合到其中。
此儲存庫包含此範例所需的所有檔案。
取得 Testkube 帳戶。
Kubernetes 叢集 - 我們正在使用本機 Minikube 叢集。
在叢集上配置的 Testkube Agent。
滿足先決條件後,您應該準備好目標 Kubernetes 叢集並配置了 Testkube 代理程式。
導覽至「測試工作流程」選項卡,然後按一下「新增測試工作流程」。
這將為您提供三個選項:
從頭開始建立 - 使用精靈建立測試工作流程。
從範例開始 - 使用現有的 k6、cypress 和 playwright 範例。
從 yaml 匯入 - 匯入您自己的測驗工作流程。
我們將選擇「從頭開始建立」選項來建立此工作流程。
提供工作流程的名稱並選擇 Gradle 類型。
提供運行指令。在這種情況下,我們將提供 gradle 測試。
提供Gradle版本,我們使用8.5.0-jdk11。
在下一個畫面上,提供測試文件的來源。這可以是 Git Repo、字串或檔案。在本例中,我們將使用 Git 儲存庫。
在下一個畫面上,它將產生 yaml 規格文件並顯示輸出。
我們將透過在工件步驟中新增條件:始終來更新 yaml,以確保始終收集日誌,無論是否有任何步驟失敗。
kind: TestWorkflow apiVersion: testworkflows.testkube.io/v1 metadata: name: gradle-cucumber namespace: testkube labels: test-workflow-templates: "yes" spec: use: - name: official--gradle--beta config: run: gradle test version: 8.5.0-jdk11 content: git: uri:<a href="https://github.com/kubeshop/testkube-examples.git"> https://github.com/kubeshop/testkube-examples.git</a> revision: main paths: - Cucumber Test Using Gradle container: workingDir: /data/repo/Cucumber Test Using Gradle steps: - condition: always artifacts: paths: - '**/*'
YAML 檔案是不言自明的,因為它列出了您在 YAML 中提供的詳細資訊。下面是 Cucumber 功能文件,解釋了我們正在測試的內容。
Feature: Hello World Scenario: Print Hello World Given I have a working hello world example When I run the hello world example Then I should see "Hello World" on the console
該儲存庫包含其他文件,包括測試步驟和測試運行程序,其中包含用於執行 Cucumber 測試的相關程式碼。
按一下「建立」以建立測試工作流程。
工作流程準備就緒後,您將在螢幕上看到新建立的測試工作流程。單擊它並單擊“立即運行”以啟動工作流程。
您將看到工作流程的執行以及每個步驟的即時日誌。
您將看到基於測試執行的測試結果。在本例中,我們將測試修改為失敗,因此,您將看到失敗。
由於我們已經為此配置了工件,因此您可以導航到工件標籤並查看 Cucumber 產生的報告。 Testkube 會保存每次執行的這些報告,更容易分析測試。
這是使用 Gradle 建立 Cucumber 測試工作流程進行 Kubernetes 測試的簡單示範。若要更利用測試工作流程,您可以建立自訂工作流程並將其匯入 Testkube。
這篇文章總結了執行 BDD 測試來測試分散式 Java 應用程式的複雜性。我們研究了流行的 BDD 測試工具 Cucumber,以及在 Kubernetes 上運行它的複雜性。
我們也探索了測試工作流程,它將整個測試工作流程放入一個文件中,您可以在其中管理測試的各個方面。此示範展示如何使用 Cucumber 進行 Java 應用程式的 BDD 測試。
造訪 Testkube 網站,以了解更多有關可整合的測試工具的資訊。如果您遇到任何困難,請隨時在我們活躍的 Slack 社群中發表評論。
以上是使用 Testkube 簡化分散式 Java 應用程式的 BDD 測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!