By Maximilian Matthäus on Juni 05, 2020

Verknüpfung von Tosca mit Jira Xray

Wow, wir haben es geschafft! Das Resultat der Tosca Testfall Ausführung wird automatisch in Jira aktualisiert! Somit ist das Reporting in Jira endlich komplett. Doch damit nicht genug! Wir können in Jira per Mausklick die Ausführung in Tosca starten! Ist das nicht cool?

Viele Unternehmen steigen derzeit auf die Testmanagement-Erweiterung Xray für Jira um. Ein wichtiger Aspekt beim Umstieg ist auch die Möglichkeit zur Verknüpfung dieses Plug-ins mit der gewählten Lösung für die Testautomation. Unser Beispiel konzentriert sich auf die Testautomations-Suite Tosca von Tricentis. Wir beschreiben deshalb die Verknüpfung von Tosca mit Jira Xray.

Es gibt nicht nur eine Möglichkeit Tosca mit Jira zu verknüpfen. In diesem Blog erläutern wir die Verknüpfung ohne weitere Tools. Ein weiterer Ansatz ist die Integration über den Tasktop Hub, welcher eine individuelle Konfiguration von Synchronisationsregeln auf Enterprise-Niveau zulässt. Wir beraten Sie gerne, welcher Weg für Ihr Vorhaben der Beste ist.

Der Blog gliedert sich in zwei Teile. Im ersten Teil zeigen wir auf, wie man die Tosca Resultate automatisch in Jira reflektieren kann. Der zweite Teil befasst sich damit, wie man in Jira per Mausklick eine Testfallausführung in Tosca startet. Beide Teile zusammen angewendet, erlauben die Testfallausführung in Jira zu starten und nach automatischer Ausführung das Resultat in Jira zu sehen.

Ihre Testfallausführung könnte so aussehen:

 

Teil 1 – Das Resultat der Tosca Testfall Ausführung automatisch in Jira aktualisieren

  1. Abfrage des aktuellen Status in Jira
  2. Aktualisierung des Status in Jira
  3. Tipps für die Implementierung in Tosca
    • Modul-Bereich (orange)
    • TestCaseDesign-Bereich (rot)
    • TestCase-Bereich (blau)

Teil 2 – In Jira per Mausklick die Testfall Ausführung in Tosca starten

  1. Einen Tosca Server konfigurieren
  2. Einen Tosca Benutzer für den Rest API Call konfigurieren
  3. Ein Groovy-Script mit Service-Call implementieren
  4. Eine Post-Function mit Groovy-Script in den Workflow integrieren

Wir wünschen euch viel Spass beim Lesen!

Teil 1 – Das Resultat der Tosca Testfall Ausführung automatisch in Jira aktualisieren

Testfälle werden in Tosca ausgeführt, aber wo kann ich prüfen, ob die Tests erfolgreich waren? Natürlich kann man dies direkt in Tosca nachsehen – vorzugsweise möchte man alle Informationen an einem Ort verwalten, nämlich in Jira Xray. Um zu vermeiden, dass der Teststatus manuell in Jira aktualisiert werden muss, kann man alternativ die Testfälle in Jira per Service-Call (REST API) aus Tosca heraus aktualisieren.

1.1 Abfrage des aktuellen Status in Jira

Als Vorbedingung erstellen wir eine Ausführungsliste (TestExecutionList) in Jira Xray und fügen mindestens einen Testfall hinzu. In der URL dieser Ausführungsliste sieht man den Key (wir nennen diesen Key hier «test_execution_key»).

Wir benutzen den Tosca API-Scan, um den Status der Ausführungsliste abzufragen. Dafür wählen wir die Methode «GET» und senden eine Anfrage an die entsprechende URL. In unserem Beispiel hat die Ausführungsliste den Key «XI-25». Hostnamen und Port müssen dem Projekt angepasst werden. In unserem Beispiel haben wir Jira lokal installiert; der Endpoint ist wie folgt:

http://localhost:8080/rest/raven/1.0/api/testexec/<test execution key>/test

Zudem müssen wir im Tab «Auth» die Authentication «Basic» auswählen sowie Benutzername und Passwort angeben (wir empfehlen die Verwendung eines technischen Benutzers). Dieser User ist in Jira anzulegen, bzw. benötigt Jira-Zugriff. Die Checkbox «Pre-authenticate» ist ebenfalls zu selektieren:

Das Resultat erhalten wir in folgender Form:

Erläuterungen zum Resultat:

Es befindet sich ein Testfall in der Ausführungsliste, da wir nur eine Antwortgruppe (id, status, key, rank) erhalten. Der «Key» dieses Testfalls ist «XI-24». Beim Öffnen des Testfalls sehen wir diesen Key ebenfalls in der URL des Browsers, hier ein Beispiel:

Die «id» des Testfalls in einer Ausführungsliste ist ebenfalls eindeutig und hat in unserem Beispiel den Wert «1». Beim Hinzufügen eines Testfalls zu einer Ausführungsliste wird von Jira jeweils eine neue «id» zugeordnet. Wenn ein Testfall in mehreren Ausführungslisten enthalten ist, existiert eine «id» pro Ausführungsliste und Testfall. Ein Testfall, der in zwei verschiedenen Ausführungslisten enthalten ist, besitzt nur einen «Key», aber zwei «id’s». So kann man auch bestimmen, in welcher Ausführungsliste das Testresultat angepasst werden soll.

1.2 Aktualisierung des Status in Jira

Im zweiten Schritt möchten wir den Status des Testfalls anpassen, zum Beispiel auf «Erfolgreich» oder «Fehlgeschlagen». Dies funktioniert ebenfalls mit einem Service Call via Tosca API-Scan.

Wie beim ersten Service Call müssen Hostname und Port auf das Projekt angepasst werden. Die «id» wird benötigt, um zu bestimmen, welcher Testfall aktualisiert werden soll. Wir verwenden den Wert des ersten Service Calls für die «id», also 1. Als Status gibt es standardmässig die Werte PASS, FAIL und TODO (entsprechend Ihrer Jira-Konfiguration für Xray).

Da wir eine Änderung via REST API vornehmen, verwenden wir einen PUT-Request:

http://localhost:8080/rest/raven/1.0/api/testrun/<id>/status?status=<status>

Auch hier muss der Tab «Auth» entsprechend abgefüllt werden (s. oben).

Als Antwort erhalten wir den Status «200 OK». Der Testfall in der entsprechenden Ausführungsliste in Jira besitzt jetzt diesen neuen Status.

1.3 Tipps für die Implementierung in Tosca

Diese Vorgehensweise ist skalierbar, wenn «good practices» in Tosca eingehalten werden. Dazu folgende Tipps:

Modul Bereich (orange)

Um die Module vom Tosca API-Scan in den Tosca-Commander zu importieren, benutzen wir die Funktion «API Test Case».

Anschliessend selektieren wir den Endpoint im Modul und fügen das entsprechende Attribut hinzu. Dies wiederholen wir für die restlichen benötigten Attribute:

TestCaseDesign Bereich (rot)

Der «Key» des Testfalls ist fixiert, die «id», die zur Aktualisierung des Testfalls benötigt wird, ist jedoch abhängig von der Ausführungsliste. Durch den «Key» des Testfalls kann zusammen mit dem Key der Ausführungsliste die korrekte «id» bestimmt werden. Zur Bestimmung der «id» speichern wir deshalb den «Key» des Testfalls im Tosca TestCase Design. Der «Key» der Ausführungsliste wird später als Konfigurationsparameter definiert.

TestCase Bereich (blau)

Konfigurationsparameter

Der «Key» der Ausführungsliste kann als Konfigurationsparameter gewählt werden. Dieser kann nach jedem Release zentral angepasst werden, damit die Testfälle in der korrekten Ausführungsliste nach deren Ausführung aktualisiert werden.

Vorbedingung

Die «id» des Testfalls in der korrekten Ausführungsliste kann in der Vorbedingung bestimmt werden (Service Call 1):

Nachbearbeitung

Falls der Testfall korrekt durchlaufen ist, wird die Nachbedingung durchgeführt. Dies ist ein passender Ort, um den zweiten Service Call aufzurufen und Jira zu aktualisieren. Die Verifikation des Status-Codes 200 stellt sicher, dass der Service Call korrekt ausgeführt werden konnte.

Recovery-Szenario

Falls der Testfall nicht fehlerfrei ausgeführt werden kann, werden die Recovery-Szenarien angestossen. Dieser Abschnitt eignet sich dazu, um den Status in Jira auf «Fail» zu setzen. Die Verifikation des Status-Codes 200 stellt sicher, dass der Service Call korrekt ausgeführt werden konnte.

 

Teil 2 – In Jira per Mausklick die Testfall Ausführung in Tosca starten

«Kann unser Business Responsible direkt in Jira einen Tosca Testfall starten bzw. ausführen?»

Diese Frage hören wir oft von unseren Kunden, sowie von anderen Unternehmen, welche mit Jira und Tosca arbeiten. «Na klar!» ist unsere Antwort und gerne zeigen wir euch einen einfachen Lösungsansatz. Wir benötigen das App ScriptRunner für das Ausführen von Scripts innerhalb von Jira, sowie eine Installation des Tosca Servers.

2.1 Einen Tosca Server konfigurieren

Als erstes müssen wir die Installationsdateien für den Tosca Server herunterladen. Das kann man auf der Support Homepage von Tricentis machen. Wir empfehlen die neuste Version von Tosca und dem Tosca Server zu benutzen. Wir haben die Version 13.0 verwendet. Zudem haben wir den Tosca Server lokal auf dem Port 81 installiert.

  • Bei der Installation ist es wichtig, dass man beim Installations-Dialog «Rest API» selektiert. Es braucht eine vorhandene Tosca Installation, damit der «Rest API» Punkt zur Auswahl steht.
  • Nach der Installation ist es wichtig, dass man im Internetinformationsdienste (IIS)-Manager zuerst die «Default Web Site» deaktiviert und anschliessend den «ToscaServer» neu startet.
  • Nun kann man auf das Rest API zugreifen. Die entsprechende Dokumentation ist unter http://localhost:81/rest/toscacommander/help verfügbar.

    * Diese Dokumentation ist aber nicht sehr ausführlich und deshalb empfehlen wir die Dokumentation auf der Tricentis Support Homepage unter Products > Tricentis Tosca > API Reference.

2.2 Einen Tosca Benutzer für den Zugriff auf Tosca aus Jira heraus erstellen

Damit wir später von Jira aus eine Ausführungsliste im Tosca starten können, müssen wir in Tosca einen Benutzer mit den nötigen Berechtigungen aufsetzen. Dieser Benutzer wird analog zu einem Benutzer erstellt, welcher regulär in Tosca arbeitet. Die Erstellung ist firmenspezifisch. Wir empfehlen die Verwendung eines technischen Benutzers.

Wir haben für unser Beispiel folgenden Benutzer aufgesetzt.

  • Benutzer=Integrator
  • Passwort=Infometis

2.3 Ein Groovy-Script mit Service-Call implementieren

In diesem Schritt erstellen wir ein Groovy-Script, welches mehrere Rest API Calls durchführt, sodass am Ende die Ausführungsliste im Tosca ausgeführt und das Resultat in Jira aktualisiert wird. Wir verwenden im Groovy-Script folgende Rest API Calls.

Damit diese Rest API Calls ausgeführt werden können, verwenden wir für die Authentifizierung den zuvor erstellten Tosca-Benutzer.

Hier unser Groovy-Script, welches wir verwendet haben.

Groovy Script

import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON

// initialize a new builder and give a default URL
def httpCheckout = new HTTPBuilder("http://localhost:80/Rest/ToscaCommander/CoolWorkspace/object/39f52557-b4b6-c0ee-71ba-17378b539fa3/task/Checkout")
def httpRun = new HTTPBuilder("http://localhost:80/Rest/ToscaCommander/CoolWorkspace/object/39f52557-b4b6-c0ee-71ba-17378b539fa3/task/Run")
def httpCheckin = new HTTPBuilder("http://localhost/Rest/ToscaCommander/CoolWorkspace/task/CheckInAll?checkincomment=Comment")

httpCheckout.request(GET,JSON) { req ->
headers.'Authorization' = "Basic ${"Integrator:Infometis".bytes.encodeBase64().toString()}"
response.success = { resp, jsonData ->
assert resp.status == 200
}
}

httpRun.request(GET,JSON) { req ->
headers.'Authorization' = "Basic ${"Integrator:Infometis".bytes.encodeBase64().toString()}"
response.success = { resp, jsonData ->
assert resp.status == 200
}
}

httpCheckin.request(GET,JSON) { req ->
headers.'Authorization' = "Basic ${"Integrator:Infometis".bytes.encodeBase64().toString()}"
response.success = { resp, jsonData ->
assert resp.status == 200
}
}

2.4 Eine Post-Function mit Groovy-Script in den Workflow integrieren

Damit sie diesen Schritt machen können, benötigen sie Administrator Berechtigung für Jira.

Es gibt verschiedene Apps, welche das Integrieren und Ausführen von Scripts in Jira unterstützen. Wir haben für unser Beispiel die App «ScriptRunner» von Adaptavist verwendet.

  • Ihre Jira Instanz öffnen/einloggen
  • Öffnen sie Einstellungen (oben rechts) > Manage apps
  • Wählen sie im Menu links > Find new apps
  • Geben sie im Feld «Search the Marketplace» ScriptRunner ein und drücken sie Enter
  • Wählen sie nun «Free trial» oder «Buy now» um die App zu installieren

Durch die App haben sie nun die Möglichkeit Scripts zu erstellen oder zu laden und diese anschliessend auszuführen. U.a. können sie die Scripts auch in einem Workflow integrieren.

Jira Workflow Konfiguration

In unserem Beispiel haben wir die Integration eines Scripts als Post Function im Workflow als Lösungsansatz gewählt. Die Post Function haben wir für die Xray Issue Types «Test» und «Test Execution» hinzugefügt. Für die Integration in den Workflows können sie wie folgt vorgehen.

  • Öffnen sie oben rechts das «Jira Administration» Menu und klicken sie auf «Issues».
  • Anschliessend klicken sie in der linken Menu-Liste auf «Workflows».
  • Öffnen sie den entsprechenden Workflow und klicken sie rechts oberhalb des Diagramms auf «Edit».
  • Wählen sie die gewünschte Transition (Verbindung) und klicken sie auf Post Functions.
  • Danach können sie die Transition editieren. In unserem Beispiel die Transition «Run». Wählen sie den Reiter «Post Functions» und klicken sie auf «Add post funtion».
  • Weil wir die App ScriptRunner installiert haben, haben wir im nächsten Schritt eine zusätzliche Option «Script Post-Function [ScriptRunner]» zur Auswahl. Selektieren sie diese Option und klicken sie auf «Add».
  • Wir haben unser eigenes Groovy-Script vorbereitet, wählen sie deshalb bitte «Custom script post-function» aus.
  • Nun haben sie die Möglichkeit entweder das Script gleich in der Console einzufügen oder ein bestehendes Script auf ihrem Jira Server auszuwählen. In unserem Beispiel geben wir das Script direkt in der Console ein. Zusätzlich können sie eine Beschreibung (Note) zur Post Function eingeben. Wenn sie fertig sind klicken sie auf «Update».
  • Jetzt wurde die Post Function erfolgreich ihrem Workflow hinzugefügt. Damit der geänderte Workflow aktiviert wird, müssen sie zum Schluss noch auf «Publish» klicken.
  • Cool, sie können jetzt über die Post Function einen Tosca Testfall starten bzw. ausführen!

Zusammengefasst bedeutet das, durch das Hinzufügen der Post Function auf der Transition «Run», wird nun jedes Mal, wenn ein Issue mit diesem Workflow auf «Run» gesetzt wird, das Groovy-Script und somit die Ausführungsliste (ExecutionList) ausgeführt.

Fazit

Die beiden Tools, Jira und Tosca, lassen sich gut miteinander verbinden. Für die Umsetzung ist fortgeschrittenes Know-How beider Tools erforderlich. Zudem sind Entwickler-Skills von Vorteil. Ganz klar sind das Stärken der Infometis AG – immenses Wissen in verschiedenen Themenbereichen sowie versierte Tool-Kenntnisse. Integrationen gehören zu unserer täglichen Arbeit. Zudem sind wir froh, bei Atlassian Themen auf das geballte Fachwissen der Swarmit AG zugreifen zu können. Eine Integration von Jira und Tosca lohnt sich auf jeden Fall, denn der dadurch gewonnene Nutzen ist enorm! Des Weiteren raten wir ihnen, beide Tools aktiv zu Unterhalten und regelmässig zu Aktualisieren. Wir beraten und unterstützen sie gerne bei Ihrem Vorhaben! Folgend eine Auswahl von Leistungen die wir Ihnen bieten können:

Sie können uns auch einfach kontaktieren und wir diskutieren mit Ihnen darüber, wie sich die IT oder das Softwaretesting aus unserer Sicht in den nächsten Jahren weiterentwickeln wird. Bitte einfach bei uns melden!

Wir freuen uns!

Ihr Maximilian Matthäus und Michael Vils 

Published by Maximilian Matthäus Juni 5, 2020