Apidog: If/Else-Verzweigung und Kontrollfluss für API-Tests implementieren

Fügen Sie If/Else-Verzweigungen und Ablaufsteuerung zu API-Testszenarien in Apidog hinzu, sodass ein Testlauf basierend auf einer vorherigen Antwort verzweigt, sowie CLI-Automatisierung.

Ashley Innocent

Ashley Innocent

15 July 2026

Apidog: If/Else-Verzweigung und Kontrollfluss für API-Tests implementieren

Apidog für Unternehmen

On-Premises Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Die meisten API-Tests verlaufen linear. Man ruft Login auf, dann Checkout, dann den Beleg-Endpunkt und prüft dabei die Ergebnisse. Das funktioniert so lange gut, bis ein Schritt auf eine Weise fehlschlagen kann, von der der nächste Schritt abhängt. Wenn der Login eine 401 zurückgibt, ist es sinnlos, die Checkout-Anfrage auszuführen. Schlimmer noch, es verbirgt den eigentlichen Fehler hinter einem zweiten, irreführenden Fehler. Was Sie wollen, ist ein Test, der die Login-Antwort liest, entscheidet, ob er fortfahren soll, und die Wahrheit darüber meldet, wo etwas schiefgelaufen ist.

Diese Entscheidung ist eine bedingte Logik, und Sie bauen sie mit Flusskontrolle. Dieser Leitfaden zeigt Ihnen, wie Sie if/else-Verzweigungen zu einem API-Testszenario in Apidog hinzufügen, damit ein Durchlauf basierend auf einer vorherigen Antwort verzweigt werden kann. Sie werden ein reales Szenario aufbauen: Anmelden, den Statuscode überprüfen und nur dann mit dem Checkout fortfahren, wenn die Anmeldung tatsächlich funktioniert hat. Wenn Sie neu bei Apidog-Szenarien sind, behandelt die Anleitung zum Erstellen eines Testszenarios mit Apidog die linearen Grundlagen, auf denen dieser Artikel aufbaut. Für eine Definition des Verzweigungsmusters selbst ist der MDN-Leitfaden zu bedingten Anweisungen eine gute Einführung. Sie können Apidog kostenlos herunterladen und mitmachen.

button

Was Flusskontrolle ist und was nicht

In Apidog leben automatisierte Tests im Modul Tests. Die Einheit, in der Sie arbeiten, ist ein Testszenario, das die Dokumentation als analog zu einer Collection in Postman beschreibt. Innerhalb eines Szenarios ordnen Sie Testschritte an: Jeder Schritt ist entweder eine einzelne Anfrage oder ein Steuerfluss-Element wie eine Verzweigung, eine Schleife oder eine Verzögerung.

Eine Bildschirmaufnahme der Apidog-Szenarioansicht, die die Elemente einer

Flusskontrolle ist die Menge der Steuerfluss-Elemente. Sie ermöglicht es einem Szenario, mehr zu tun, als Anfragen der Reihe nach abzuarbeiten. Die Apidog-Dokumentation zur Flusskontrolle und bedingten Verzweigung ist die Referenz hinter jeder hier verwendeten Bezeichnung. Der Fokus dieses Artikels liegt auf der Bedingten Verzweigung, dem Namen von Apidog für if/else. Eine Verzweigung liest einen von Ihnen angegebenen Wert, prüft diesen Wert gegen eine Bedingung und führt einen Satz von Schritten aus, wenn die Bedingung erfüllt ist, und einen anderen Satz, wenn sie nicht erfüllt ist.

Eine Klarstellung vorab, da die beiden oft verwechselt werden. Verzweigung ist kein Schleifen. Eine Verzweigung entscheidet einmal, ob ein Block von Schritten ausgeführt wird. Eine Schleife führt einen Block viele Male aus. Apidog hat separate Funktionen für Iteration, genannt For Loops und ForEach Loops, und sie gehören zu einem anderen Problem: das Wiederholen derselben Anfrage über einen Bereich oder über die Elemente in einem Array. Wenn Sie ein Array von Bestell-IDs durchgehen müssen, ist das eine ForEach-Schleife, behandelt im ForEach-Schleifen-Tutorial, keine Verzweigung. Dieser Leitfaden konzentriert sich auf if/else.

Die Apidog-Dokumentation listet keine kostenlosen oder kostenpflichtigen Beschränkungen für Flusskontrolle, bedingte Verzweigungen, Schleifen oder das Übergeben von Daten zwischen Schritten auf. Es gibt auch keine Unterscheidung zwischen Cloud- und selbstgehosteter Version für diese Funktionen. Wenn Sie ein Szenario erstellen können, können Sie ihm eine Verzweigung hinzufügen.

Erstellen Sie ein Szenario, das auf die Login-Antwort verzweigt

Das ist das Ziel. Ein Benutzer meldet sich an. Wenn der Login-Endpunkt einen 200er-Status zurückgibt, fährt das Szenario fort, einen Checkout zu erstellen. Wenn etwas anderes zurückgegeben wird, stoppt das Szenario und meldet den Fehler, anstatt vorzugeben, der Checkout sei gelaufen.

Schritt 1: Das Testszenario erstellen

Öffnen Sie Apidog und gehen Sie zum Modul Tests. Klicken Sie auf das + neben der Suchleiste, um ein neues Testszenario zu erstellen, wählen Sie das Verzeichnis, in dem es gespeichert werden soll, und legen Sie eine Priorität fest, um die Erstellung abzuschließen. Sie haben nun ein leeres Szenario, das bereit für Schritte ist.

Schritt 2: Die Login-Anfrage als ersten Schritt hinzufügen

Fügen Sie Ihren ersten Testschritt hinzu. Apidog bietet Ihnen verschiedene Möglichkeiten, eine Anfrage einzufügen: Importieren Sie sie aus einer bestehenden Endpunkt-Spezifikation, importieren Sie aus einem gespeicherten Endpunkt-Fall, fügen Sie eine benutzerdefinierte Anfrage direkt hinzu oder fügen Sie eine aus einem cURL-String hinzu. Für einen schnellen Start fügen Sie eine benutzerdefinierte Anfrage hinzu. Stellen Sie sie auf POST und richten Sie sie mit einem JSON-Body auf Ihren Authentifizierungs-Endpunkt aus:

POST https://api.your-store.com/v1/login
Content-Type: application/json

{
  "email": "dana@example.com",
  "password": "correct-horse-battery-staple"
}

Führen Sie diesen Schritt einmal separat aus, um zu bestätigen, dass er das erwartete Ergebnis liefert. Ein erfolgreicher Login gibt einen 200er-Status und einen Token im Body zurück, etwa so:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "userId": "usr_10482"
}

Schritt 3: In den Orchestrierungsmodus wechseln

Klicken Sie auf einen beliebigen Schritt, um in den Orchestrierungsmodus zu gelangen. Das linke Panel zeigt den Gesamtfluss des Szenarios an; das rechte Panel zeigt die Details des jeweils ausgewählten Schritts. Diese geteilte Ansicht ist der Ort, an dem Sie die Verzweigung anordnen. Wenn Sie jemals Schritte neu anordnen müssen, ziehen Sie das -Symbol eines Schritts, um ihn zu verschieben.

Schritt 4: Die bedingte Verzweigung hinzufügen

Klicken Sie auf die Schaltfläche Schritt hinzufügen. Dies ist der primäre Weg, um ein Steuerfluss-Element einzufügen. Wählen Sie aus dem Menü Bedingte Verzweigung. Dadurch wird eine If-Anweisung erstellt, eine leere Verzweigung, die auf eine Bedingung und auszuführende Schritte wartet.

Nun bauen Sie die Bedingung auf. Sie müssen den Statuscode der Login-Antwort in die Verzweigung einspeisen. Apidog erstellt Bedingungen aus einem festen Satz von Vergleichsoperatoren. Die vollständige Liste ist: Ist gleich, Ist nicht gleich, Existiert, Existiert nicht, Kleiner als, Kleiner als oder gleich, Größer als, Größer als oder gleich, Stimmt mit Regex überein, Enthält, Enthält nicht, Ist leer, Ist nicht leer, In Liste, und Nicht in Liste.

Für diese Verzweigung möchten Sie, dass der Login-Statuscode gleich 200 ist. Die Bedingung lautet also: Der Status der Login-Antwort Ist gleich 200.

Schritt 5: Die vorherige Antwort in der Bedingung referenzieren

Um das Login-Ergebnis in das Bedingungsfeld zu übertragen, haben Sie zwei Methoden.

Die erste Methode erfordert keine Einrichtung. Klicken Sie in das Wertfeld der Bedingung und dann auf das Zauberstab-Symbol. Wählen Sie anschließend Daten des vorherigen Schritts abrufen. Apidog ermöglicht es Ihnen, direkt auf den vorherigen Login-Schritt zu verweisen und einen Wert aus dessen Antwort zu extrahieren. Intern verwendet dies eine Vor-Schritt-Referenz mit der Syntax {{$.<step id>.response.body.<field path>}}. Wenn Sie beispielsweise den Token aus dem Login-Body anstelle des Status wollten, würden Sie auf {{$.1.response.body.token}} verweisen, wobei 1 die ID des Login-Schritts ist.

Eine Bildschirmaufnahme des Apidog-Bedingungsbaukastens, der zeigt, wie man den Statuscode des vorherigen Schritts als Bedingung verwendet.

Zwei Dinge, die Sie über Daten des vorherigen Schritts abrufen wissen sollten. Es funktioniert nur im Modul Tests, nicht im Modul APIs. Und es wird nur aufgelöst, wenn Sie das gesamte Szenario ausführen, nicht wenn Sie einen einzelnen Schritt isoliert ausführen. Wenn eine Vor-Schritt-Referenz bei einer Einzelausführung leer erscheint, ist das normal; führen Sie das gesamte Szenario aus, und sie wird ausgefüllt.

Die zweite Methode verwendet eine benannte Variable und funktioniert sowohl in den Modulen Tests als auch APIs. Öffnen Sie in der Login-Anfrage ihre Post-Prozessoren und fügen Sie eine Aktion Variable extrahieren hinzu. Extrahieren Sie das gewünschte Feld mit einem JSONPath-Ausdruck, z.B. $.token, und Apidog speichert es unter einem Namen. Sie können es dann später überall als {{token}} referenzieren. Dies ist der portabelere Ansatz, wenn Sie denselben Wert modulübergreifend oder in mehreren Verzweigungen verfügbar haben möchten. Die tieferen Mechanismen der Wertübergabe zwischen Schritten werden im Leitfaden zum Übergeben von Daten zwischen Testschritten behandelt.

Für die Statuscode-Verzweigung ist Daten des vorherigen Schritts abrufen beim Status des Login-Schritts der kürzeste Weg.

Schritt 6: Die Else-Verzweigung hinzufügen

Fahren Sie mit der Maus über den If-Block und klicken Sie auf + Else. Das gibt Ihnen den alternativen Pfad, der ausgeführt wird, wenn die Bedingung falsch ist, d.h. der Login nicht 200 zurückgegeben hat.

Füllen Sie nun beide Seiten aus:

Ihr Szenario liest sich nun wie eine einfache Logik: Wenn der Login 200 ist, Checkout ausführen; andernfalls melden und stoppen.

Schritt 7: Speichern

Klicken Sie auf Alle speichern, um das Szenario zu speichern. Ungespeicherte Änderungen werden durch einen Punkt angezeigt; wenn Sie diesen Punkt sehen, haben Sie noch Arbeit zu erledigen. Führen Sie das gesamte Szenario aus und beobachten Sie, wie die Verzweigung aufgelöst wird. Wenn Sie den Login mit gültigen Anmeldeinformationen versehen, wird der If-Block ausgelöst. Bei falschen Anmeldeinformationen wird stattdessen der Else-Block ausgelöst.

Variationen und erweiterte Flusskontrolle

Sobald die grundlegende Verzweigung funktioniert, decken dieselben Bausteine viel ab.

Verzweigen Sie basierend auf einem Body-Feld, nicht nur dem Status. Statuscodes sind der übliche Fall, aber Bedingungen lesen jeden Wert, den Sie referenzieren können. Angenommen, Ihr Login gibt auch für ein gesperrtes Konto 200 zurück, wobei der tatsächliche Status in einem status-Feld liegt. Rufen Sie {{$.1.response.body.status}} ab und verwenden Sie den Operator Ist gleich für "active" oder verwenden Sie Enthält für eine Nachrichten-Zeichenkette. Die Operatorliste bietet Ihnen auch Bereichsprüfungen: Größer als für einen zurückgegebenen Saldo, In Liste, um zu testen, ob eine zurückgegebene Rolle einer von mehreren zulässigen Werten ist.

Kombinieren Sie Verzweigungen mit Schleifen. Verzweigungen und Iteration lassen sich kombinieren. Innerhalb einer ForEach-Schleife über ein Array von Produkt-IDs kann ein Bedingter Verzweigungsschritt Produkte überspringen, die nicht auf Lager sind, und den Rest verarbeiten. Der Schleifenindex-Verweis {{$.<loop step id>.index}} beginnt bei 0, und ein ForEach-Element ist {{$.<loop step id>.element.<field path>}}. Schleifen sind ein eigenes Thema; das ForEach-Schleifen-Tutorial behandelt sie ausführlich.

Eine Bildschirmaufnahme von Apidog, die zeigt, wie man eine If/Else-Verzweigung innerhalb einer ForEach-Schleife erstellt. Die Schleife iteriert über Produkte und die Verzweigung prüft, ob das Produkt aktiv ist.

Beenden Sie eine Schleife frühzeitig mit Break If. Wenn Sie iterieren, beendet das Element Break If condition die Schleife, sobald eine Bedingung erfüllt ist. Sie können es verschieben und mehrfach in einer Schleife hinzufügen.

Fehler mit On Error behandeln. Schleifen verfügen über ein On Error-Element, das am Schleifenanfang fest positioniert ist und nicht verschoben werden kann. Seine Optionen bestimmen, was passiert, wenn eine Anfrage innerhalb der Schleife einen Fehler verursacht: Ignorieren fährt mit der nächsten Anfrage fort, Fortsetzen überspringt den Rest der Anfragen des aktuellen Zyklus, Ausführung abbrechen stoppt die Schleife und fährt danach fort, und Ausführung beenden stoppt das gesamte Szenario.

Eine Wartezeit zwischen den Schritten hinzufügen. Manchmal benötigt ein nachgeschalteter Dienst eine kleine Pause, bevor er eine Schreiboperation widerspiegelt. Das Element Warten fügt eine Verzögerung in Millisekunden hinzu, nützlich zwischen einem Erstellungsaufruf und dem Lesevorgang, der ihn überprüft.

Referenzwerte innerhalb von Skripten. Wenn eine Verzweigung eine Logik benötigt, die zu komplex für die Operatorliste ist, kann ein Pre-Processor- oder Post-Processor-Skript diese berechnen. Innerhalb eines Skripts können Sie die {{variable}}-Syntax nicht direkt verwenden. Verwenden Sie stattdessen pm.variables.get("$.2.response.body.token"), passend zur Schritt-ID und dem Feldpfad. Für das umfassendere Muster der Verkettung von Anfragen, sodass eine die nächste speist, siehe den Leitfaden zur Anfragenverkettung und den tiefergehenden Artikel zur API-Testorchestrierung und Datenübergabe.

Ein Hinweis zur Selbstreferenz: Ein Szenario kann nicht das ursprüngliche Testszenario selbst referenzieren. Diese Schutzmaßnahme verhindert versehentliche Endlosschleifen beim Verschachteln von Szenarien.

Den Workflow mit der Apidog CLI automatisieren

Das gerade erstellte Szenario muss nicht nur in der App ausgeführt werden. Apidog liefert einen Kommandozeilen-Runner, der gespeicherte Szenarien headless ausführt, genau das, was Sie in CI benötigen. Installieren Sie ihn und melden Sie sich an:

npm install -g apidog-cli
apidog login --with-token <IHR_ACCESS_TOKEN>

Führen Sie dann Ihr Verzweigungsszenario anhand der ID aus, indem Sie es auf eine Umgebung verweisen und einen Reporter auswählen:

apidog run --access-token $APIDOG_ACCESS_TOKEN -t <szenario_id> -e <umgebungs_id> -r cli

Hier ist -t die ID des Testszenarios, -e die ID der Umgebung und -r der Reporter. Verwenden Sie cli für die Konsolenausgabe oder html und junit für Artefakte, die Ihre Pipeline veröffentlichen kann; trennen Sie sie durch Kommas, z.B. -r html,cli, um mehrere gleichzeitig auszugeben. Die Verzweigung wird auf die gleiche Weise aufgelöst wie in der App: Der Runner liest die Login-Antwort, wählt den If- oder Else-Pfad, und der Exit-Code spiegelt das Ergebnis wider, sodass ein fehlgeschlagener Login den Build fehlschlagen lässt. Die vollständige Einrichtung finden Sie im Apidog CLI Installationshandbuch, und die Einbindung in eine Pipeline wird im Apidog CLI GitHub Actions Handbuch behandelt. Wenn Sie dasselbe Szenario lieber nach einem Zeitplan als bei jedem Commit ausführen möchten, erfahren Sie, wie Sie API-Tests in Apidog planen können.

FAQ

Was ist der Unterschied zwischen Bedingter Verzweigung und einer Schleife in Apidog?

Die Bedingte Verzweigung entscheidet einmal, ob ein Block von Schritten ausgeführt wird, basierend auf einer Bedingung. Eine Schleife führt einen Block wiederholt aus. Verwenden Sie eine Verzweigung, wenn Sie eine Entweder-Oder-Entscheidung haben, z.B. nur mit dem Checkout fortfahren, wenn der Login erfolgreich war. Verwenden Sie eine For- oder ForEach-Schleife, wenn Sie eine Anfrage über eine Anzahl oder ein Array wiederholen müssen. Das ForEach-Schleifen-Tutorial behandelt die Iteration vollständig.

Warum ist meine Referenz für Daten des vorherigen Schritts abrufen leer?

Zwei häufige Ursachen. Erstens funktioniert Daten des vorherigen Schritts abrufen nur im Modul Tests, nicht im Modul APIs. Zweitens wird es nur aufgelöst, wenn Sie das gesamte Testszenario ausführen. Wenn Sie einen einzelnen Schritt isoliert ausführen, hat die Referenz noch nichts, worauf sie zeigen könnte. Führen Sie das gesamte Szenario aus, und der Wert wird eingefügt.

Kann ich auf ein Feld innerhalb des Antwort-Bodys verzweigen, nicht nur auf den Statuscode?

Ja. Referenzieren Sie das Feld mit einem Vor-Schritt-Ausdruck wie {{$.1.response.body.status}} oder extrahieren Sie es in eine benannte Variable, und wählen Sie dann einen Operator wie Ist gleich, Enthält oder In Liste. Jeder Wert, den Sie referenzieren können, kann eine Bedingung steuern. Das Verschieben dieser Werte wird unter Übergeben von Daten zwischen Testschritten behandelt.

Wie verwende ich eine Variable in einem Skript anstelle eines Bedingungs-Builders?

Skripte akzeptieren die {{variable}}-Syntax nicht. Verwenden Sie pm.variables.get("$.2.response.body.token") in einem Pre- oder Post-Processor-Skript, passend zur Schritt-ID und dem gewünschten Feldpfad.

Kosten Verzweigungen extra oder erfordern sie die selbstgehostete Version?

Die Apidog-Dokumentation listet keine Planbeschränkungen für Flusskontrolle, bedingte Verzweigungen, Schleifen oder Datenübergabe auf, und auch keine Unterscheidung zwischen Cloud- und selbstgehosteter Version für diese Funktionen. Wenn Sie ein Szenario erstellen können, können Sie ihm Verzweigungen hinzufügen.

Zusammenfassung

Ein linearer Test sagt Ihnen, dass etwas kaputt ist. Ein verzweigter Test sagt Ihnen, wo, und verschwendet keine Schritte mehr auf einem Pfad, der nicht mehr erfolgreich sein kann. Fügen Sie einen Schritt für bedingte Verzweigung hinzu, speisen Sie ihn mit einer früheren Antwort mittels Daten des vorherigen Schritts abrufen oder einer extrahierten Variable, verdrahten Sie das If und das + Else, und Ihr Szenario trifft nun Entscheidungen so, wie es Ihre echte API tut. Wenn es in der App funktioniert, überträgt ein apidog run-Befehl dieselbe Logik in die CI. Probieren Sie Apidog kostenlos aus, keine Kreditkarte erforderlich, und verwandeln Sie Ihre linearen Tests in Szenarien, die "denken".

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen