Devops mit Cucumber, Jira und Xray

DevOps Cucumber Jira Jenkins

"Hat auf meiner Maschine funktioniert,
ist jetzt Operating Problem“

Diese oder vergleichbare Aussagen sind nicht neu und wahrscheinlich schon öfter vorgekommen. Doch wie lässt sich so etwas eigentlich vermeiden? Dieser Blogeintrag zeigt eine Möglichkeit auf einen Jenkins Server mit entsprechendem Plugins zu konfigurieren um Cucumber Testfälle auszuführen und deren Ergebnisse an Jira zu übermitteln. In Jira werden die Cucumber-Featurefiles gepflegt und sind somit als gemeinsame Quelle der Wahrheit an einer Stelle abgelegt.
Dieses Vorgehen hat einige Vorteile, unter anderem existiert nur ein Ablageort der auch jedem Teammitglied bekannt ist. Nicht nur Tester und Entwickler, auch der Fachbereich könnte Änderungen und Ergänzungen an den Testfällen vornehmen.

Benötigte Jenkinsplugins

Benötigt werden folgende Plugins:

  1. Jira
  2. Cucumber Plugin
  3. Cucumber Reports
  4. Xray – Testmanagement for Jira Plugin

Jira API Schlüssel generieren und hinzufügen

Nach der Installation dieser Plugins müssen zunächst die API Daten von Jira hinterlegt werden.
Die API Schlüssel lassen sich in Jira selber unter „Jira Software“, Apps und anschließend Xray „API Schlüssel“ generieren.
Das Xray Plugin muss zuvor unter Jira hinzugefügt worden sein.
Wurde der Schlüssel generiert, muss dieser im Jenkins unter „Jenkins verwalten“, „Konfiguration“ und dann „Xray Konfiguration“ hinzugefügt werden.
Jenkins Konfiguration Xray

Xray in Jenkins einbinden

Um nun Xray in Jenkins einzubingen legen wir zunächst ein neues Projekt an. Unter „Element anlegen“ auf „Freestyle Softwareprojekt bauen“.

Jenkins anlegen Freestyleprojekt

Nun lassen sich wie gewohnt alle notwendigen Voraussetzungen wie zum Beispiel der Buildstart festlegen.

Entscheidend sind die Schritte in Buildverfahren und Post-Build-Aktion.

Buildverfahren

Jenkins Xray Buildverfahren

Hier muss zuerst die Jira-Instanz ausgewählt werden, dies ist die Instanz, bei der zuvor der API Key hinterlegt wurde.

Anschließend ist hier bei „Issues“ die Ticketnummer anzugeben, unter der die Cucumber Berichte und Testergebnisse auffindbar sein sollen.

Dies sieht dann in etwa so aus:

Ergebnis Jenkins Xray

Unter „File Path“ ist der Pfad zu den Cucumber Featurefiles anzugeben. Unter diesem Pfad werden auch die von Jira exportieren Featurefiles abgelegt.

Als nächstes wird noch der „Xray Cucumber Feature Import Task“ benötigt.

Xray Cucumber Feature import Task

Mit dieser Aktion werden bereits vorhandene Cucumber Featurefiles nach Jira importiert.

Neben der Jira Instanz ist hier der „Projekt Key“ einzutragen und anschließend erneut der Pfad zu den Cucumber Featurefiles.

Post Build Aktion

Zuletzt fehlt noch eine Aktion um die Cucumber Reports nach Jira zu importieren. Dies erfolgt über die Post-Build-Aktion.
Jenkins Xray Post Build Aktion

Wiederholt muss hier die Jira Instance ausgewählt werden. Im Anschluss ist dann das passende Format der Reports auszuwählen. Zu guter letzt fehlt nur noch der Pfad unter dem die Reports abgelegt sind.

Abschluss

Neben der passenden Jenkins Konfiguration muss Cucumber die entsprechende Runnerclass besitzen um die Reports zu erzeugen. Des Weiteren ist in vorhandenen Cucumberfiles die Ticketnummer zu hinterlegen, ansonsten ist die Zuweisung durch Xray nicht möglich. Werden die Cucumber Featurefiles in Jira hinterlegt, erfolgt dies durch Xray automatisch.

Beispiel Cucumber Testfall
Beispiel Cucumber Test in Jira Xray

Dieses Vorgehen und sämtliche Anwendungsfälle von Cucumber, inklusive Tabellen und Parameter, erfahren Sie in meiner Schulung „Behaviour Driven Development mit Cucumber“.

Interne Schulungen in Cucumber & Selenium


In geschützter Umgebung lernt und festigt Ihr Team individuelles Wissen für Ihre aktuellen Anforderungen. Damit Ihr Projekt erfolgreich und wie geplant abgeschlossen wird.

Das könnte Sie auch interessieren

ReSpeaker 4 LEDs mit Pi4J steuern

ReSpeaker 4 LEDs mit Pi4J steuern Motivation Für ReSpeaker im allgemeinen gibt es bereits zahlreiche Bibliotheken, auch einige die LEDs über die GPIO Pins ansteuern....

Rolladensteuerung mit Loxone und Java

Automatische Rolladensteuerung mit Java und Loxone Motivation Loxone ist ein bekannter Anbieter für Smarthome Rolläden. Während sich über die mitgelieferte Oberfläche...

Apple Kalender auslesen mit Java

Apple Kalender mit Java auslesen Motivation Apple Kalender-Einträge sollen synchron auf meinem Java-Dashboard sowie auf sämtlichen anderen Geräten im Haus gepflegt...

Licht steuern mit Java und Philips Hue

Licht steuern mit Java und Philips Hue Motivation Für meinen selbstprogrammierten Sprachassistenten wollte ich ein Modul für die Lichtsteuerung entwickeln. Ziel war es,...

Erinnerungsassistent für Medikamente mit Sprachausgabe

Erinnerungsassistent für Medikamenteinnahme mit Sprachausgabe Motivation Bevor Corona began, besuchten Ich und meine Familie meine Großeltern regelmäßig. Dabei...

API Testing mit Java und WireMock

API Testing mit Java und WireMock Motivation Ein bekanntes Problem: Öffentliche APIs werden abgefragt und liefern Daten in Form von JSON oder anderen Formaten zurück....

Behaviour Driven Development (BDD) mit Cucumber und Gherkin Schulung

Behaviour Driven Development (BDD) mit Cucumber Schulung Schulungsbeschreibung In dieser Schulung lernen Teilnehmer*innen den sicheren Umgang mit BDD, Cucumber und...

Sealed Classes mit Java JDK 17

Sealed Classes mit Java JDK 17 Was sind Sealed Classes? Mit dem kommenden Java Release 17 werden sogenannte Sealed Classes eingeführt. Diese waren zuvor bereits seit...

Datenbanktests mit DB Unit

Datenbanktests mit DB Unit Wie lassen sich eigentlich Datenbanken testen? Während meiner täglichen Arbeit spielen auch Testdaten regelmäßig eine Rolle. Diese müssen...