Heim > Java > javaLernprogramm > Vereinfachen Sie BDD-Tests für verteilte Java-Anwendungen mit Testkube

Vereinfachen Sie BDD-Tests für verteilte Java-Anwendungen mit Testkube

王林
Freigeben: 2024-09-04 06:48:32
Original
1046 Leute haben es durchsucht

Da der Trend zu verteilten Anwendungen anhält, wird das Testen von Java-Anwendungen immer komplexer. Verteilte Systeme umfassen zahlreiche Microservices. Daher ist es wichtig, Konsistenz sicherzustellen, Fehler zu verwalten und die Datenintegrität über alle Komponenten hinweg zu überprüfen. Umfassende End-to-End-Tests sind von entscheidender Bedeutung, um sicherzustellen, dass sich die Anwendung wie erwartet verhält.

Behavior-Driven Development (BDD) begegnet diesen Herausforderungen, indem es das Anwendungsverhalten in natürlicher Sprache definiert und so die Erklärung und das Verständnis von Testfällen für verteilte Anwendungen vereinfacht.

Die Integration von BDD in das Testen verteilter Java-Anwendungen bringt jedoch eigene Herausforderungen mit sich. Die Pflege von BDD-Szenarien für mehrere Dienste, die Orchestrierung von Testumgebungen sowie die Verwaltung von Diensten und Testdaten können entmutigende Aufgaben sein.

In diesem Blogbeitrag werden wir untersuchen, wie Testkube BDD-Tests mithilfe von Cucumber für verteilte Java-Anwendungen optimieren und den Prozess effizienter und überschaubarer machen kann.

Cucumber – BDD-Testtool für Java

Cucumber ist eines der am weitesten verbreiteten BDD-Testtools. Es verwendet Gherkin, das es Teams ermöglicht, Anwendungsfunktionen in natürlicher Sprache zu definieren. Es umfasst Unterstützung für verschiedene Programmiersprachen, einschließlich Java. Außerdem lässt es sich gut in gängige Entwicklungs-Frameworks integrieren, was es zu einer beliebten Wahl macht. Schließlich werden detaillierte Berichte erstellt, die Ihnen Einblicke in die Tests geben.

Während Cucumber ein großartiges Tool für die Implementierung von BDD ist, birgt es Herausforderungen beim Testen verteilter Anwendungen, insbesondere in einer Kubernetes-Umgebung.

  • Der Umgang mit Testdaten kann entmutigend sein, insbesondere in einer verteilten Umgebung wie Kubernetes. Cucumber erfordert den Austausch von Status- und Testdaten zwischen den Schritten, wodurch die Isolation komplex und dennoch kritisch ist.

  • Ressourcen wie Rechenleistung, Arbeitsspeicher und Speicher werden in Kubernetes dynamisch bereitgestellt. Cucumber benötigt Zugriff auf diese Ressourcen und die Konfiguration ist schwierig.

  • Das Aggregieren von Testergebnissen aus verteilten Cucumber-Testläufen ist eine Herausforderung und erfordert möglicherweise zusätzliche Einrichtung, um alle unter einem Dashboard zusammenzuführen.

Während Kubernetes Bereitstellungen, Skalierung und App-Verwaltung automatisiert, fügt es eine zusätzliche Abstraktionsebene hinzu, die zusammen mit der Konfiguration von Cucumber für die Verwendung damit verwaltet werden muss. Hier kommt ein Tool wie Testkube ins Spiel.

Verwendung von Cucumber mit Testkube für BDD-Tests

Testkube bietet ein einheitliches Test-Framework für Kubernetes, um den gesamten Testprozess zu vereinfachen und zu rationalisieren. Das Testteam kann Tests auf Kubernetes-Clustern speichern, ausführen und verwalten. Es definiert Tests als Kubernetes CRDs, um eine moderne Lösung für die Verwaltung all Ihrer Tests und die Skalierung bei Bedarf bereitzustellen.

Mit Testkube können Sie Test-Workflows erstellen, die alles von der Bereitstellung notwendiger Infrastrukturkomponenten über die nahtlose Integration mit anderen Testtools bis hin zur Orchestrierung komplexer Tests umfassen. Weitere Informationen finden Sie in unseren Test-Workflows.

Sehen wir uns an, wie man Cucumber mit Testkube für BDD-Tests verwendet. Wir erstellen einen Testworkflow mit Gradle und integrieren Cucumber-Tests darin.

Dieses Repo enthält alle erforderlichen Dateien für dieses Beispiel.

Voraussetzungen

  • Erstellen Sie ein Testkube-Konto.

  • Kubernetes-Cluster – wir verwenden einen lokalen Minikube-Cluster.

  • Testkube Agent auf dem Cluster konfiguriert.

Sobald die Voraussetzungen erfüllt sind, sollten Sie über einen Ziel-Kubernetes-Cluster mit konfiguriertem Testkube-Agenten verfügen.

Erstellen eines Testworkflows

Navigieren Sie zur Registerkarte „Test-Workflows“ und klicken Sie auf „Neuen Test-Workflow hinzufügen“.

Dadurch stehen Ihnen drei Optionen zur Verfügung:

  • Von Grund auf neu erstellen – verwenden Sie den Assistenten, um einen Test-Workflow zu erstellen.

  • Beginnen Sie mit einem Beispiel – verwenden Sie vorhandene K6-, Zypressen- und Dramatiker-Beispiele.

  • Import aus Yaml – Importieren Sie Ihren eigenen Test-Workflow.

Wir wählen die Option „Von Grund auf neu erstellen“, um diesen Workflow zu erstellen.

  • Geben Sie einen Namen für den Workflow ein und wählen Sie den Typ „Gradle“ aus.

  • Geben Sie den Ausführungsbefehl an. In diesem Fall bieten wir einen Gradle-Test an.

  • Stellen Sie eine Gradle-Version bereit, wir verwenden 8.5.0-jdk11.

Simplify BDD Testing for Distributed Java Applications with Testkube

Geben Sie im nächsten Bildschirm die Quelle für die Testdatei an. Dies kann entweder ein Git-Repo, ein String oder eine Datei sein. In diesem Fall verwenden wir ein Git-Repo.

Simplify BDD Testing for Distributed Java Applications with Testkube

Auf dem nächsten Bildschirm wird die Yaml-Spezifikationsdatei generiert und die Ausgabe angezeigt.

Simplify BDD Testing for Distributed Java Applications with Testkube

Wir werden das Yaml aktualisieren, indem wir in den Artefaktschritten die Bedingung: immer hinzufügen, um sicherzustellen, dass Protokolle immer erfasst werden, unabhängig davon, ob ein Schritt fehlgeschlagen ist.

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:

      - '**/*'
Nach dem Login kopieren

Die YAML-Datei ist selbsterklärend, da sie die Details auflistet, die Sie in der YAML angegeben haben. Unten finden Sie die Cucumber-Funktionsdatei, die erklärt, was wir testen.

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
Nach dem Login kopieren

Das Repo enthält weitere Dateien, einschließlich Testschritte und einen Testläufer, die zugehörigen Code zum Ausführen des Cucumber-Tests enthalten.

Klicken Sie auf „Erstellen“, um den Testworkflow zu erstellen.

Ausführen des Test-Workflows

Sobald der Workflow fertig ist, sehen Sie den neu erstellten Testworkflow auf dem Bildschirm. Klicken Sie darauf und dann auf „Jetzt ausführen“, um den Workflow zu starten.

Sie sehen den ausgeführten Workflow zusammen mit den Echtzeitprotokollen jedes Schritts.

Simplify BDD Testing for Distributed Java Applications with Testkube

Sie sehen das Testergebnis basierend auf der Testausführung. In diesem Fall haben wir den Test so geändert, dass er fehlschlägt. Daher wird Ihnen der Fehler angezeigt.

Simplify BDD Testing for Distributed Java Applications with Testkube

Da wir die Artefakte dafür konfiguriert haben, können Sie zur Registerkarte „Artefakte“ navigieren und sich die von Cucumber generierten Berichte ansehen. Testkube speichert diese Berichte für jede Ausführung und erleichtert so die Analyse der Tests.

Simplify BDD Testing for Distributed Java Applications with Testkube

Simplify BDD Testing for Distributed Java Applications with Testkube

Dies war eine unkomplizierte Demo zum Erstellen eines Cucumber-Test-Workflows mit Gradle für Kubernetes-Tests. Um Test-Workflows besser nutzen zu können, können Sie benutzerdefinierte Workflows erstellen und diese in Testkube importieren.

Zusammenfassung

Dieser Beitrag fasst die Feinheiten der Ausführung von BDD-Tests zum Testen verteilter Java-Anwendungen zusammen. Wir haben uns Cucumber, ein beliebtes BDD-Testtool, und die Komplexität seiner Ausführung auf Kubernetes angesehen.

Wir haben uns auch Test-Workflows angesehen, die den gesamten Test-Workflow in einer einzigen Datei zusammenfassen, in der Sie alle Aspekte Ihrer Tests verwalten können. Die Demo zeigte, wie man Cucumber für BDD-Tests von Java-Anwendungen verwendet.

Besuchen Sie die Testkube-Website, um mehr über die anderen Testtools zu erfahren, die Sie integrieren können. Wenn Sie mit irgendetwas zu kämpfen haben, können Sie gerne eine Nachricht in unserer aktiven Slack-Community posten.

Das obige ist der detaillierte Inhalt vonVereinfachen Sie BDD-Tests für verteilte Java-Anwendungen mit Testkube. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage