Combo-Replay Benutzerhandbuch

Dokumentversion: 20260729

Von diesem Dokument unterstützte App-Versionen:

  • iOS: >= 3.13
  • Android: >= 1.2.0

Combo Replay ermöglicht es, mehrere HTTP/HTTPS-Anfragen zu einem „Workflow“ zu orchestrieren und sie je nach Abhängigkeiten automatisch seriell oder parallel auszuführen. Ideal für API-Integrationstests, Regressionstests und die Stapelvalidierung derselben API mit unterschiedlichen Eingabewerten.

ApiCatcher | Combo-Replay Anwendungsfälle

1. Funktionsübersicht

FunktionBeschreibung
Multi-Request-OrchestrierungAnfragen aus der Capture-Historie auswählen und auf der Leinwand kombinieren
Mehrere Knoten für dieselbe APIDasselbe Endpoint mehrfach hinzufügen, jeder Knoten mit eigenen Voreinstellungsparametern
AbhängigkeitenAusführungsreihenfolge steuern (z. B. Login vor Business-APIs)
AbhängigkeitsinjektionToken etc. aus Upstream-Antworten automatisch in Downstream-Anfragen übernehmen
AusdrucksinjektionZeitstempel, UUID dynamisch erzeugen oder globale Variablen verwenden
Manuelle AusführungEin-Klick-Wiedergabe mit Request-/Response-Details pro Knoten
Geplante AufgabenAutomatische Ausführung per Cron oder benutzerdefiniertem Intervall

2. Schnellstart

Schritt 1: Zuerst capturen

Combo-Replay-Anfragen stammen aus der Capture-Historie. Erfassen Sie zuerst einen Stapel HTTP/HTTPS-Anfragen in der App (WebSocket-Anfragen können nicht hinzugefügt werden).

Schritt 2: Regel erstellen

  1. Combo Replay-Liste öffnen
  2. + tippen, um eine Combo-Replay-Regel hinzuzufügen
  3. Regelnamen eingeben (Pflichtfeld; Standard z. B. Combo Replay 260729)
  4. Unten rechts + tippen, um Anfragen zur Leinwand hinzuzufügen
  5. Benötigte Anfragen aus der Liste auswählen

ApiCatcher | Schritte zum Erstellen einer Combo-Replay-Regel

Schritt 3: Ausführen

  1. Regel speichern (✓ oben rechts im Editor)
  2. In der Liste auf den Regelnamen tippen, um die Ausführungsseite zu öffnen
  3. Replay ausführen tippen

Nach der Ausführung zeigen die Knoten Erfolgs-/Fehlerstatus; tippen Sie auf einen Knoten für Details.

ApiCatcher | Combo-Replay-Regel ausführen

3. Regelverwaltung

3.1 Listeninformationen

Jede Regelkarte zeigt:

  • Regelname
  • Knotenanzahl
  • Pfadvorschau (max. 3)
  • Anzahl Abhängigkeiten und Parametermappings
  • Letzte Aktualisierung

3.2 Erstellen / Bearbeiten / Löschen

AktionVorgehen
Erstellen+ in der Listen-Navigationsleiste
BearbeitenNach links wischen → Bearbeiten
LöschenNach links wischen → Löschen
Speichern oben rechts im Editor

Regeln werden lokal gespeichert und gehen bei Deinstallation oder Datenlöschung verloren.

ApiCatcher | Combo-Replay-Regelliste

4. Combo-Regeln bearbeiten

4.1 Anfragen hinzufügen

  • Schwebenden +-Button unten rechts tippen
  • Suche nach URL / Method
  • Filter nach Session, Host, Typ, Statuscode

Dieselbe API kann mehrfach hinzugefügt werden: z. B. 3 /api/order-Knoten für Normalfall, Grenzwert und ungültige Parameter.

4.2 Knotenmenü

Auf einen Knoten tippen, um das Menü zu öffnen:

MenüpunktFunktion
Abhängigkeit setzenVerknüpfungsmodus starten, dann Zielknoten antippen
VoreinstellungsparameterQuery / Header / Body bearbeiten (auch auf der Ausführungsseite möglich, dort aber nur temporär)
AbhängigkeitsinjektionMapping Upstream-Antwort → Downstream-Anfrage konfigurieren
LöschenKnoten und zugehörige Abhängigkeiten/Mappings entfernen

Knoten ziehen zum Verschieben; auf leere Fläche tippen zum Abwählen oder Beenden des Verknüpfungsmodus.

ApiCatcher | Abhängigkeiten erstellen und Injektion konfigurieren

5. Voreinstellungsparameter

Werden in der Regelbearbeitung verwendet, um Testdaten pro Knoten festzulegen — besonders für „gleiche API, unterschiedliche Eingaben“.

5.1 Schritte

  1. Knoten tippen → Voreinstellungsparameter
  2. Abfrageparameter / Header / Body bearbeiten
  3. Nach Abschluss oben rechts im Sheet tippen, um in der Regel zu speichern

5.2 Unterschied zu „Anfrage ändern“ auf der Ausführungsseite

Voreinstellungsparameter (Editor)Anfrage ändern (Ausführungsseite)
ZugangKnotenmenü → VoreinstellungsparameterKnoten auf Ausführungsseite antippen
PersistenzIn Regel gespeichert, bleibt erhaltenNur dieser Lauf, nicht zurückgeschrieben
VerwendungFeste TestfälleTemporäre Anpassung vor erneutem Lauf

5.3 Beispiel: mehrere Szenarien für dieselbe API

Knoten A: POST /api/login     → body: gültige Anmeldedaten
Knoten B: POST /api/login     → body: falsches Passwort
Knoten C: POST /api/login     → body: leeres Passwort
(3 Knoten ohne Abhängigkeit → parallele Ausführung)

5.4 Unterstützung für Ausdrucksinjektion

Siehe: Abschnitt 8, Ausdrucksinjektion

ApiCatcher | Voreinstellungsparameter

6. Abhängigkeiten

6.1 Bedeutung

Eine Verbindung A → B bedeutet: A hängt von B ab; B wird zuerst ausgeführt, A danach.

Der Pfeil zeigt vom Downstream (A) zum Upstream (B).

6.2 Abhängigkeit erstellen

  1. Downstream-Knoten tippen → Abhängigkeit setzen
  2. Blauer Hinweis oben: „Zielknoten antippen, um Abhängigkeit zu erstellen“
  3. Upstream-Knoten antippen
  4. Verbindungslinie erscheint

6.3 Einschränkungen

  • Dieselbe Abhängigkeit kann nicht doppelt erstellt werden
  • Zyklen sind nicht möglich
  • Löschen einer Linie entfernt auch zugehörige Parametermappings

6.4 Ausführungsreihenfolge

        ┌─ Knoten B ─┐
Knoten A ─┤            ├─ Parallel (gleiche Ebene)
        └─ Knoten C ─┘
              ↓
           Knoten D (nach Erfolg von A und C)
  • Gleiche Ebene (keine gegenseitigen Abhängigkeiten): parallele Ausführung
  • Verschiedene Ebenen (mit Abhängigkeiten): serielle Ausführung; nächste Ebene erst nach vollständigem Erfolg der vorherigen
  • Fehler in einer Ebene: alle folgenden Knoten werden als übersprungen markiert

7. Abhängigkeitsinjektion (Parametermapping)

Überträgt token, userId etc. aus Upstream-Antworten automatisch in Downstream-Anfragen.

7.1 Voraussetzung

Der Zielknoten benötigt mindestens eine Upstream-Abhängigkeit, sonst erscheint „Kein Upstream-Knoten — zuerst Abhängigkeit erstellen“.

7.2 Konfiguration

  1. Downstream-Knoten tippen → Abhängigkeitsinjektion
  2. Mapping hinzufügen tippen und konfigurieren:
FeldBeschreibungBeispiel
QuellknotenVon welchem Upstream die Antwort kommtLogin-Knoten
Aus Upstream-Antwort extrahierenResponse-Header / JSON-Pfad im Bodydata.token
In Anfrage injizierenHeader / Query-Parameter / BodyHeader Authorization
Optionales PräfixZeichenkette vor dem injizierten WertBearer
  1. Mapping speichern

ApiCatcher | Abhängigkeitsinjektion

7.3 Typisches Szenario: Login + authentifizierte Anfrage

[Login POST /login] ──→ [Profil GET /user/profile]
         │                          ↑
    Antwort: data.token    Authorization = Bearer ${injiziertes token}
  1. Beide Anfragen hinzufügen
  2. Bei GET /user/profileAbhängigkeit setzenPOST /login antippen
  3. Bei GET /user/profileAbhängigkeitsinjektion:
    • Quelle: Login-Knoten, Body data.token
    • Ziel: Header Authorization
    • Präfix: Bearer

7.4 Verarbeitungsreihenfolge bei der Ausführung

Voreinstellungsparameter / Anfrage ändern
        ↓
   Ausdrucksinjektion (${method.timestamp()} etc.)
        ↓
   Abhängigkeitsinjektion (Parametermappings)
        ↓
     HTTP-Anfrage senden

8. Ausdrucksinjektion

Schreiben Sie ${...}-Ausdrücke in Header, Query-Parameter oder Body; sie werden bei der Ausführung ersetzt.

8.1 Integrierte Methoden

AusdruckErgebnis
${method.timestamp()}Aktueller Zeitstempel (Millisekunden)
${method.uuid()}UUID (Kleinbuchstaben)
${method.date()}Datum, z. B. 2026-07-29
${method.time()}Uhrzeit, z. B. 14:30:00
${method.datetime()}Datum und Uhrzeit, z. B. 2026-07-29 14:30:00

Beispiel:

{
  "requestId": "${method.uuid()}",
  "timestamp": "${method.timestamp()}",
  "date": "${method.date()}"
}

8.2 Globale Variablen

Ausdrücke wie ${token}, ${appId} (nicht mit method. beginnend) sind globale Variablen.

Konfiguration (Ausführungsseite):

  1. Ein Knoten in der Regel verwendet ${variableName}
  2. 🌐-Button erscheint rechts in der Statusleiste
  3. Antippen und Werte eingeben
  4. Nach dem Speichern mit der Regel persistent (beim Löschen der Regel entfernt)

Voreinstellungsparameter und „Anfrage ändern“ unterstützen Ausdruckssyntax; Ersetzung erfolgt beim Tippen auf „Replay ausführen“.

8.3 Kombiniertes Beispiel

Header:  X-Request-Id: ${method.uuid()}
Query:   ts=${method.timestamp()}
Body:    {"token": "${token}", "userId": "123"}

Vor der Ausführung token über 🌐 eingeben.

ApiCatcher | Ausdrucksinjektion

9. Ausführungsseite

9.1 Oberfläche

ApiCatcher | Ausführungsseite

9.2 Vor der Ausführung

  • Knoten tippenAnfrage ändern (nur dieser Lauf, nicht in Regel gespeichert)
  • Bei globalen Variablen → 🌐 tippen und Werte eingeben

9.3 Nach der Ausführung

  • Knoten tippenAusführungsdetails (tatsächliche Anfrage, Antwort, Dauer, Fehler)
  • Zurücksetzen in der Navigationsleiste (rot): alle Ergebnisse löschen und erneut ausführen

9.4 Knotenstatus

StatusBedeutung
Grauer KreisAusstehend
Blauer FortschrittLäuft
Grünes ✓Erfolg (HTTP 2xx)
Rotes ✗Fehler
Oranges −Übersprungen (Upstream fehlgeschlagen)

9.5 Erfolgskriterium

HTTP-Statuscodes 200–299 gelten als Erfolg, alle anderen als Fehler.

10. Szenario-Handbuch

Szenario 1: Parallele Tests mit unterschiedlichen Eingaben für eine API

POST /api/order  Knoten1  body: {"type":"normal"}
POST /api/order  Knoten2  body: {"type":"edge"}
POST /api/order  Knoten3  body: {"type":"invalid"}
  • Keine Abhängigkeit → drei Knoten parallel
  • Unterschiedliche Body über Voreinstellungsparameter pro Knoten
  • Ergebnisse nach Ausführung vergleichen

Szenario 2: Login-Kette

POST /login  →  GET /user  →  POST /order
     │              ↑              ↑
     └──── token in Authorization injizieren ─┘
  • Abhängigkeiten: GET /user hängt von POST /login ab; POST /order hängt von GET /user ab
  • Token-Mapping auf GET /user und POST /order konfigurieren
  • Seriell: Login → Benutzerinfo → Bestellung

Szenario 3: Dynamische Parameter + festes Token

  • Body: {"ts":"${method.timestamp()}","id":"${method.uuid()}"}
  • Header: Authorization: Bearer ${token}
  • token vor Ausführung über 🌐 eingeben
  • Zeitstempel und UUID werden bei jedem Lauf aktualisiert

11. FAQ

F: Anfragen hinzugefügt, aber Ausführungsseite ist leer?
A: Regel im Editor mit speichern, dann Ausführungsseite über die Liste öffnen.

F: Voreinstellungsparameter geändert, Ausführungsseite unverändert?
A: Prüfen, ob die Regel gespeichert wurde; „Anfrage ändern“ betrifft nur den aktuellen Lauf.

F: Abhängigkeitsinjektion funktioniert nicht?
A: Prüfen: ① Abhängigkeiten vorhanden; ② JSON-Pfad stimmt mit Beispielantwort überein; ③ Upstream-Knoten erfolgreich; ④ Ausdrucksinjektion läuft vor Abhängigkeitsinjektion.

F: Globale Variablen werden leer ersetzt?
A: Werte über 🌐 auf der Ausführungsseite eingeben und speichern; leere Variablen werden zu Leerstrings.

F: Warum werden manche Knoten übersprungen?
A: Bei Fehler in derselben Ebene oder Upstream werden alle Knoten folgender Ebenen als übersprungen markiert.

F: Können WebSocket-Anfragen hinzugefügt werden?
A: Nein, nur Standard-HTTP/HTTPS-Anfragen werden unterstützt.

12. Kurzreferenz

Ich möchte…So geht's
Regel erstellenListe + → Name → Anfragen →
Gleiche API mit mehreren Eingaben testenAnfrage mehrfach hinzufügen → Voreinstellungsparameter pro Knoten
Reihenfolge steuernAbhängigkeit setzen → Upstream-Knoten antippen
Token automatisch übernehmenAbhängigkeitsinjektion konfigurieren
Dynamischer Zeitstempel/UUID${method.timestamp()} etc. in Parametern
Token etc. teilen${token} schreiben → 🌐 auf Ausführungsseite
Parameter temporär ändernAusführungsseite → Knoten → Anfrage ändern
Anfragedetails ansehenNach Ausführung Knoten antippen
Erneut ausführenZurücksetzenReplay ausführen