1. Support
  2. Knowledge Base
  3. Synthetic monitoring
  4. API Monitoring
  5. Multi-step monitoring
  6. Response-Validierung
  7. Multi-Step API Assertions – Quelle und Merkmal

Multi-Step API – Assertions Quelle und Merkmal

Wenn du noch nicht vertraut mit Assertions oder Variablen sein solltest, empfehlen wir die Artikel Assertions und Variablen, um einen Überblick zu ihrer Funktionsweise zu erhalten. Dieser Artikel erläutert, wie die Felder Quelle und Merkmal verwendet werden, um die API-Antwort zu validieren.

Die Felder Quelle, source, und Merkmal, property, dienen beide zur Identifikation, woher die API-Antwort stammt und welcher Inhalt geprüft werden sollte. Die Quelle ist der Ursprungsort, von dem aus die Daten referenziert werden sollen. Merkmal bezieht sich auf den spezifischen Inhalt, der validiert werden soll.

Diese Felder sind verfügbar auf dem Tab Response für Assertions und Variables:

Assertions

Variablen

Unten sind die verfügbaren Quellen und wie du ihren zugehörigen Merkmalwert ausfüllen kannst.

Response Body als JSON

Wähle diesen Quelltyp, wenn du eine API-Antwort in JSON-Format erwartest. Spezifiere im Merkmalfeld das JSON-Element, das du untersuchen oder extrahieren möchtest.

Beispiele

Sehen wir uns beispielsweise die folgende JSON-Antwort an:

{
  "access_token":"MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg==",
  "token_type":"Bearer",
  "expires_in":86400
}

Um den Wert MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg== zu erfassen, nutze access_token als Merkmalswert.

Wenn das Objekt mit dem Schlüssel access_token Child bzw. das untergeordnete Objekt eines anderen JSON Objekts ist, gib den kompletten JSON-Pfad an. In diesem Fall verwende response.access_token als Merkmalswert:

{
   "response":{
      "access_token":"MjAxNy0xMC0wMlQxMDoxMDoyNy42NDkwOTEzWg==",
      "token_type":"Bearer",
      "expires_in":86400
   }
}

Wenn deine JSON-Daten ein Array mit einem oder mehreren Elementen enthält und und du den Preis des ersten Elements (zum Beispiel: 20000) erfassen möchtest, gib den Index gefolgt vom Attributnamen an. Der Index eines Arrays beginnt immer mit null: [0]. In diesem Fall sollte das Merkmalsfeld [0].Price lauten, um den Wert 20000 abzurufen.

[
  {
    "Name": "Alpha Cygnus IX",
    "Price": 20000,
  },
  {
    "Name": "Norcadia Prime",
    "Price": 25000,
  },
  {
    "Name": "Risa", 
    "Price": 37500,
  }
]

Wenn dein JSON ein Array als Child eines anderen Objekts enthält, musst du jeden Pfad angeben, einschließlich des Index für das Element in dem Array. Nehmen wir an, dein JSON enthält etwas wie das Folgende:

{
   "Destinations":[
      {
         "Name":"Alpha Cygnus IX",
         "Price":20000
      },
      {
         "Name":"Norcadia Prime",
         "Price":25000
      },
      {
         "Name":"Risa",
         "Price":37500
      }
   ]
}

In diesem Fall kann der Wert für das erste Name anhand Destinations.[0].Name, was Alpha Cygnus IX lautet, erfasst werden.

Hinweis: Wenn der Antwortinhalt nicht als JSON geparst werden kann, erzeugt diese Funktion einen Fehler.

Response Body als XML

Wähle diesen Quelltyp, wenn du eine API-Antwort in XML-Format erwartest. Dann kannst du eine XPath-Abfrage spezifizieren, um bestimmte Inhalte zu erfassen.

Beispiele

Sehen wir uns beispielsweise die folgende XML-Antwort an:

<AuthInfo> 
  <access_token>MjAxNy0xMC0wMlQxMDowOTo1My45MDUxNjEyWg==</access_token> 
  <expires_in>86400</expires_in> 
  <token_type>Bearer</token_type> 
</AuthInfo>

Um den Wert MjAxNy0xMC0wMlQxMDowOTo1My45MDUxNjEyWg== zu erfassen, verwende die XPath-Abfrage /AuthInfo/access_token/text() als Merkmalswert. Um mehr über XPath, einschließlich SOAP XML, zu erfahren, lies den Artikel zu den XPath-Beispielen.

Hinweis: Wenn der Antwortinhalt nicht als eigenständiges XML-Dokument geparst werden kann oder wenn die XPath-Abfrage ungültig ist und den spezifischen Wert aus dem Dokument nicht identifiziert, erzeugt diese Funktion einen Fehler.

Response Body als Text

Wähle diesen Quelltyp, wenn deine Antwort nicht das JSON- oder XML-Format hat. Diese Option kann Klartext, HTML-Dateien oder geschützte Formate verarbeiten, um den gesamten Inhalt zu nutzen.

Dieser Quelltyp ist zu nutzen, wenn du eine einfache enthält-Operation ausführen möchtest, zum Beispiel Prüfen, ob der Antwortinhalt den Text Price enthält. Die Prüfung gilt als erfolgreich, sofern der Text Price an einer beliebigen Stelle im Inhalt erscheint. Wenn du den gesamten Inhalt verwenden oder ihn einer Variable zuweisen möchtest, lasse das Merkmalsfeld frei.

Wenn du Inhalt von einer bestimmten Stelle im Dokument untersuchen oder extrahieren möchtest, gib im Merkmalsfeld einen regulären Ausdruck an. Hier wird ein musterbasierter regulärer Ausdruck genutzt, um den bestimmten Wert aus dem Inhalt zu erfassen.

Wenn der reguläre Ausdruck eine Erfassungsgruppe, ein Muster in Klammern, enthält, wird die erste Übereinstimmung für diese rückwärtsreferenzierende Gruppierung verwendet.

Hinweis: Diese Quelle findet Anwendung auf Textinhalte und kann für Antworten mit JSON oder XML genutzt werden, da diese Formate immer noch Klartext sind. Das Durchsuchen von binärem Inhalt wird nicht unterstützt.

Status Code

Diese Option prüft den numerischen HTTP-Statuscode von jeder Antwort, wodurch du fehlgeschlagenes Laden mit dem Statuscode identifizieren kannst.

Standardmäßig prüft Uptrends automatisch auf 4xx und 5xx Codes. Dies verifiziert, dass der Statuscode immer geringer als 400 ist, selbst wenn du den Statuscode nicht angibst.

Wenn du jedoch einen Statuscode definierst, setzt dies unseren Standardtest außer Kraft. Wenn du beispielsweise den Statuscode als Ist identisch mit 200 angibst, werden wir genau auf diese Bedingung prüfen.

Hinweis: Ein Sonderfall ist, wenn du einen Status Code 301, 302, 303, 307 oder 308 (zum Beispiel ein Weiterleitungscode) zuweist. Weitere Informationen findest du unter Handhabung von Redirects.

Status Beschreibung:

Diese Option prüft die Textbeschreibung des HTTP-Statuscodes (Reason-Phrase genannt). Dies bietet zusätzlichen Kontext bei der Verifizierung bestimmter API-Fehlerbedingungen. Wenn du beispielsweise bestätigst, dass du die richtige Eingabe bereitgestellt hast, wird eine nützliche Statusbeschreibung ausgegeben.

Response vollständig:

Diese Option gibt immer einen booleschen Wert zurück, der angibt, ob eine HTTP-Anfrage vollständig ausgeführt wurde.

Die Antwort lautet false, wenn einer der folgenden Punkte auftritt:

  • Der Server, zu dem verbunden werden soll, kann nicht festgestellt werden.
  • Der Server antwortet nicht zeitgerecht mit einer HTTP-Antwort.
  • Eine Verbindung kann nicht hergestellt werden.

Andernfalls lautet die Antwort true.

In den meisten Fällen brauchst du diese Option nicht spezifizieren, da wir dies automatisch prüfen: Response vollständig Ist identisch mit true.

Basierend auf dem Quelltyp melden wir einen Fehler, wenn keine HTTP-Antwort von deinem Server abgerufen werden kann.

In einigen Fällen kann diese Prüfung umgedreht werden. Wenn du false angibst, prüfen wir, dass die erfolgreiche Abfrage einer Antwort nicht möglich ist. Das kann nützlich sein, wenn man eine Webanwendung oder eine API hat, die nur innerhalb deines Netzwerks verfügbar sein soll, selbst wenn der entsprechende Domainname öffentlich erreichbar ist. Mit dieser Prüfung verifizieren wir, dass wir die API oder Webanwendung nicht erreichen können.

Response Header

Diese Option ermöglicht dir, besondere HTTP-Antwort-Header zu untersuchen. Gib dazu den Namen des Headers im Merkmalfeld an.

Diese Option gibt den aktuellen Wert eines Cookies zurück. Gib dazu den Namen des Cookies im Merkmalfeld an. Die von deinem Server zurückgegebenen Cookies werden als Session-Cookies behandelt: Cookie-Werte werden gespeichert, aktualisiert und zurück an den Server gegeben, während das gesamte Szenario bis zum letzten Schritt ausgeführt wird.

Alle Cookies werden dann entfernt, ungeachtet ihrer Ablaufdirektiven. Das heißt, dauerhafte Cookies werden als Session-Cookies behandelt.

Umfang des Inhalts:

Diese Option verzeichnet die Größe des Antwortinhalts in Bytes. Wenn der Server die Antwort in einem komprimierten Format sendet, spiegelt der Wert den Originalumfang des Inhalts nach dem Entkomprimieren wider.

Dauer

Diese Option gibt die Gesamtzeit in Millisekunden an, die benötigt wurde, um die Anfrage auszuführen und eine Antwort zu erhalten. Damit kannst du die Performance einzelner Schritte überwachen.

Durch die Nutzung dieser Website stimmen Sie der Verwendung von Cookies gemäß unserer Cookie-Richtlinien zu.