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:
Wir wünschen euch viel Spass beim Lesen!
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.
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.
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.
Diese Vorgehensweise ist skalierbar, wenn «good practices» in Tosca eingehalten werden. Dazu folgende Tipps:
Um die Module vom Tosca API-Scan in den Tosca-Commander zu importieren, benutzen wir die Funktion «API Test Case».
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.
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.
Die «id» des Testfalls in der korrekten Ausführungsliste kann in der Vorbedingung bestimmt werden (Service Call 1):
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.
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.
«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.
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.
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.
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.
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
}
}
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.
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.
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.
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.
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