Hello there,
Referring to the following post, I would like to know how to create a linked test execution for an Xray test via web request.
Manual linking of test and test execution is not possible via issue links because Xray has internal linking logic.
The following fields are to be filled in:
Many Greetings,
Christopher
Just to make sure I´m on the same page:
You already have a Test and created a test execution out of this test? --> there is already a test run for the test within your test execution.
And you would like to add a jira standard issue link between those issues?
is that right?
Just a personal question: What´s the use case behind it (as there is an xray-linking between those issues)?
If the above mentioned assumption is correct you would have to call the Jira RestAPI as the standard issue linking is a Jira functionality (not xray).
See the following link how issue linking is done via RestAPI:
https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issue-links/#api-rest-api-3-issuelink-post
Please let me know if this was helpful or if you need any further support.
Best
Stefan
btw:
Hab im Screenshot gesehen, dass deine Screens auf Deutsch sind :) Du kannst mir gerne auch auf Deutsch antworten ;)
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Stefan,
erstmal Danke für deine Unterstützung :)
Anwendungsfall:
Eine Standardverknüpfung ist hierfür nicht ausreichend, weil die Testausführung dann nicht korrekt in Xray mit dem Test verknüpft wird.
Im verknüpften Beitrag wird eine Erzeugung mit Verknüpfung über eine Webanfrage angesprochen.
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Guten Morgen @Stefan Salzl
konntest du den Anwendungsfall nachvollziehen, oder fallen dir bereits erste Lösungsansätze ein?
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ich kann noch nicht ganz nchvollziehen wieso ein gesonderter Link der test executions notwendig ist, da test executions immer in einem testcase referenziert sind (über xray logik, im test erscheint eine liste der test executioms in welchen dieser test ausgeführt wird).
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hach.....Ich hatte da einen kompletten Denkfehler. Sorry for the confusion.
Ich hab´s jetzt gecheckt und ich glaub ich bin der Lösung auf der Spur. Kleiner Teaser: Ich denke über die GraphQL API lässt sich das lösen. Ist auch für mich was neues, daher muss ich noch ein wenig tüfteln.
Ich geb Bescheid sobald ich Neuigkeiten hab.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
So....ich denke die Tüftlerei hat sich ausgezahlt.
So sieht meine Automation Rule gesamt aus. Ich werde dann im Anschluss die einzelnen Komponenten genauer beschreiben:
Dein Trigger ist ja so weit klar. In deinem Fall müsstest du die Statusübergängen auf deine Anforderungen anpassen.
Nächster Schritt: Testcase erstellen
In deinem Fall musst du hier das andere Projekt eingeben, in welchem du den Testcase erstellen möchtest. Beim Erstellen des Testcases wird auch der Issue-Link "Tests" erstellt. Dies ist der Standard-Link für XRAY tests.
Nächsten 2 Schritte: Test Executions erstellen
Diese Schritte/Actions sind straight forward create issue actions.
Letzter Schritt: WebRequest um Test Exeuctions dem TestCase zuzuordnen
Hierzu wird die qrapql-api verwendet. Für die Authorization muss ein xray token erstellt werden. Details dazu findest du hier:
https://docs.getxray.app/display/XRAYCLOUD/GraphQL+API
Die Authentifizierung erfolgt dann mittels Bearer Token.
Payload:
{"query":"mutation{addTestExecutionsToTest(issueId:\"{{createdissues.get(0).id}}\", testExecIssueIds: [\"{{createdissues.get(1).id}}\",\"{{createdissues.get(2).id}}\"]){addedTestExecutions warning}}"}
Die smart values {{createdissues.get(index).id}} liefern jeweils die indizes der erstellten issues, die für den api call benötigt werden.
In meiner Testumgebung hats funktioniert. Ich hoffe das funktioniert auch bei dir und löst deine Anforderung.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Stefan Salzl,
vielen Dank für deine Unterstützung.
Die Lösung sieht bereits sehr gut aus, aber leider habe ich Schwierigkeiten mit den letzten "Feinheiten":
Die Idee ist einen fachlichen Benutzer für den Test einzubinden und einen Entwickler.
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
leider schlägt die Autorisierung fehl:
Muss ich bei der Erstellung des Token noch etwas beachten? Oder kannst du einen anderen Fehler erkennen?
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
bzgl. Authorization: bist du wie folgt vorgegangen:
API key in XRAY settings erstellen
für die xray api wird ein eigener key benötigt. Dazu klicke rechts oben das Admin-Zahnrad und wähle "Apps", dann in den XRAY settings auf "API Keys" klicken:
Hier klickst du dann auf "Create API key". Damit erstellst du für deinen User ein key pair mit ClientID und ClientSecret. Diese beiden Strings kopieren, die benötigst du anschließend um den Token generieren zu können.
Token erstellen
Mit diesen Daten wird anschließend der authenticate-endpoint der API aufgerufen und damit der Token generiert. Hier der Link zur Beschreibung mit Beispielen des aufrufs:
https://docs.getxray.app/display/XRAYCLOUD/Authentication+-+REST
Ich mach das über folgendes Beispiel:
curl -H "Content-Type: application/json" -X POST --data '{ "client_id": "deine ClientID aus dem vorherigen Step","client_secret": "<dein_Secret" }' https://xray.cloud.getxray.app/api/v1/authenticate
Dieser Aufruf liefert dir eine lange Zeichenkette zurück --> der Token (Bearer-Token)
Konfiguration der Authorization in WebRequest-Action
Diesen Token verwendest du mit Angabe des Bearer Service im Feld "Authorization" in deiner WebRequest action:
Aus den Screenshots kann ich sonst keine Infos ziehen, was da eventuell falsch sein könnte. Wie oben erwähnt: Wichtig ist, die Info mit zu senden, dass es sich um einen Bearer Token handelt.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
bzgl. Testexecution pro user:
Du musst natürlich die create issue action 2 mal aufrufen. Innerhalb der action wird auch gleich der assignee definiert.
Voraussetzend, dass diese beiden User in einem MultiUser-Picker Feld eingetragen sind bekommt man bei der Abfrage des Feldes die beiden User als "Liste". Also über den smart value {{triggerIssue.dein_customFieldName}} bekommst du eine Liste der eingetragenen User. Diese Liste kannst du anschließend wie ein Array behandeln (in deinem GraphQL Api call wird das auch so verwendet). Über list.get(index) können wir die einzelnen Einträge verwenden (siehe dazu folgenden Link)
https://support.atlassian.com/cloud-automation/docs/jira-smart-values-lists/#list.get-index-
Das sieht dann in der Action wie folgt aus (in meinem System heißt das custom field "Reviewers"):
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Guten Morgen @Stefan Salzl
nach dem Hinzufügen des Wortes "Bearer" vor dem Token, hat sich die Fehlermeldung verändert:
Vorher
Nachher
Das einzige was ich hierzu gefunden habe: LINK
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hast du den token mit „“ im feld angefürhrt? also so:
Bearer „167.exxxF87…“
Falls ja: lass die quotes weg und nimm nur den string den du bei der authentication zurück bekommen hast.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ich habe noch keinen Token erstellt mit Client ID und Client Secret.
Welches Programm nutzt man hierfür und wie sehen die Befehlszeilen aus?
VG
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Leider habe ich nicht die Möglichkeit Curl zu installieren.
Ist eine Token Erstellung auch mit Postman möglich?
Falls ja, wie würde das funktionieren?
VG
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Christopher Dick ,
das sollte mit postman genau so funktionieren. Ist nur ein anderes tool um mit der api zu kommunizieren.
Wie das in postman genau aussieht kann ich dir leider nicht sagen, da ich mit dem tool keine erfahrung habe. Dazu gibts aber bestimmt einiges an hilfen zu finden.
Den Token brauchst du jedenfalls, wie in einem meiner Posts beschrieben.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
die Token Erstellung war nun erfolgreich. Es handelte sich zuvor um die falschen Credentials.
Nach dem Test deiner aufgeführten Automation ist die Testausführung leider nicht mit dem Test verknüpft.
Bitte siehe Screenshot.
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
kannst du bitte einen Screenshot vom Audit Log/Protokoll diese Ausführung senden.
Weiters wird in deiner Automation Rule nur 1 TestExecution erstellt, wodurch "createdIssue.get(2)" vermutlich was falsches oder leeres zurückschickt, da dieser Index in der Liste nicht existiert.
Du könntest also entweder versuchen, wie geplant (und wie von mir beschrieben) in der Automation Rule die 2. Test Execution zu erstellen, dann sollte es aus meiner Sicht funktionieren.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Es könnte auch sein, dass der API call zu schnell feuert und die IDs noch nicht "vorhanden" sind. Versuch bitte vor der "send webrequest" action noch eine "re-fetch issue" action ein zu fügen. Eventuell verschafft das der Automation rule mehr Zeit und der API call bekommt die richtigen Daten.
Bitte füge nach der "send webrequest" action noch eine "Log action" mit folgendem Inhalt hinzu (so können wir im Audit Log sehen was der API call macht bzw. was ihn stört):
hier per Text damit du es nicht abtippen musst:
response: {{webhookResponse}}, body: {{webhookResponse.body}}
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
leider ist mein Xray Token bereits nach einem Tag abgelaufen.
Die Automationsregel soll jedoch dauerhaft hinterlegt werden.
Gibt es eine Möglichkeit die Gültigkeit des Token zu verlängern?
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
1 Tag expire time klingt merkwürdig - und definitiv zu wenig für eine automation rule. Genau weiß ich das leider auch nicht. Bitte lies mal die Doku ob du etwas dazu findest:
https://docs.getxray.app/display/XRAYCLOUD/Getting+started
Ansonsten schlage ich vor, den Vendor-Support damit zu kontaktieren:
https://jira.getxray.app/servicedesk/customer/portal/2/user/login?destination=portal%2F2
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
leider lässt sich die Gültigkeitsdauer des Token von 24 Stunden nicht verändern.
Es gibt jedoch eine Möglichkeit eine Autorisierung mithilfe der Credentials durchzuführen.
Welche Änderungen sind hierfür in deiner Anleitung anzuwenden?
Viele Grüße,
Christopher Dick
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Ich weiß leider nicht was du damit meinst bzw. kann auch aus dem Link den du gesendet hast nichts dementsprechendes herauslesen.
Ich kenne API-technisch ausschließlich die Authentifizierung via Token.
Bitte auch Dinge selbstständig nachlesen und ausprobieren. Wir helfen hier in der Community sehr gerne bei konkreten Fragen, wenn Dinge nicht laufen. Grundsätzlich ist es aber nicht so gedacht, dass wir die Suche und das bauen von Lösungen hier übernehmen. Das machen viele von uns (ich zumindest) beruflich als Consultants.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
danke für deinen Hinweis und für die damit verbundene Unterstützung.
Leider war zuvor der falsche Link enthalten --> Hier der korrekte Beitrag.
VG
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Der Artikel beschreibt nur, wie die Eingaben als "versteckt" angezeigt werden können. Weiters beschreibt es die native Jíra REST API welche (früher) authentication mittels mail & pw erlaubte (mittlerweile depricated, benötigt ebenfalls einen API key). Für deinen Anwendungsfall wird eine andere API verwendet, die eben eine andere Authentication verwendet.
Aus meiner Sicht sehe ich keine andere Möglichkeit, dein Requirement um zu setzen als mit der GraphQL-API und diese benötigt einen Token zur Authentication. Auch der "Token" ist als credential zu sehen. Das ist standard in der Anwendung von APIs. Bitte hier mit deinen Admins/Entwicklern vor Ort abstimmen, welche Möglichkeiten es da gibt.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Gibts hierzu any news? Konntest du das Thema mit deinen Admins besprechen/klären?
Falls dies hier hilfreich war/zu einer Lösung geführt hat bitte den "Accept" Button drücken, damit dieser Post als gelöst markiert wird. Das erleichtert es anderen Usern mit ähnlichen/gleichen Problemen eine Lösung zu finden.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Credentials können via HTTPS-Webanfrage im Body der Jira Automation zur regelmäßigen Tokenerstellung genutzt werden. Dann klappt alles :)
VG
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Vielen Dank für dein Feedback. Welche Credentials/wie verwendest du diese? Jetzt möchte ich auch dazu lernen. Das kenne ich nämlich nicht :)
Wäre es möglich, dass du deine Lösung (evntl. mit Screenshot) hier teilst? (credentials/daten natürlich geschwärzt). Das würde sowohl mir als auch vielen anderen Usern eventuell helfen.
Vielen Dank im Vorhinein.
LG
Stefan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
leider nicht, da ich es im Unternehmenskontext umgesetzt habe.
Anleitung
Viele Grüße,
Christopher
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.