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.

1. Funktionsübersicht
| Funktion | Beschreibung |
|---|---|
| Multi-Request-Orchestrierung | Anfragen aus der Capture-Historie auswählen und auf der Leinwand kombinieren |
| Mehrere Knoten für dieselbe API | Dasselbe Endpoint mehrfach hinzufügen, jeder Knoten mit eigenen Voreinstellungsparametern |
| Abhängigkeiten | Ausführungsreihenfolge steuern (z. B. Login vor Business-APIs) |
| Abhängigkeitsinjektion | Token etc. aus Upstream-Antworten automatisch in Downstream-Anfragen übernehmen |
| Ausdrucksinjektion | Zeitstempel, UUID dynamisch erzeugen oder globale Variablen verwenden |
| Manuelle Ausführung | Ein-Klick-Wiedergabe mit Request-/Response-Details pro Knoten |
| Geplante Aufgaben | Automatische 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
- Combo Replay-Liste öffnen
- + tippen, um eine Combo-Replay-Regel hinzuzufügen
- Regelnamen eingeben (Pflichtfeld; Standard z. B.
Combo Replay 260729) - Unten rechts + tippen, um Anfragen zur Leinwand hinzuzufügen
- Benötigte Anfragen aus der Liste auswählen

Schritt 3: Ausführen
- Regel speichern (✓ oben rechts im Editor)
- In der Liste auf den Regelnamen tippen, um die Ausführungsseite zu öffnen
- Replay ausführen tippen
Nach der Ausführung zeigen die Knoten Erfolgs-/Fehlerstatus; tippen Sie auf einen Knoten für Details.

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
| Aktion | Vorgehen |
|---|---|
| Erstellen | + in der Listen-Navigationsleiste |
| Bearbeiten | Nach links wischen → Bearbeiten |
| Löschen | Nach links wischen → Löschen |
| Speichern | ✓ oben rechts im Editor |
Regeln werden lokal gespeichert und gehen bei Deinstallation oder Datenlöschung verloren.

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üpunkt | Funktion |
|---|---|
| Abhängigkeit setzen | Verknüpfungsmodus starten, dann Zielknoten antippen |
| Voreinstellungsparameter | Query / Header / Body bearbeiten (auch auf der Ausführungsseite möglich, dort aber nur temporär) |
| Abhängigkeitsinjektion | Mapping Upstream-Antwort → Downstream-Anfrage konfigurieren |
| Löschen | Knoten und zugehörige Abhängigkeiten/Mappings entfernen |
Knoten ziehen zum Verschieben; auf leere Fläche tippen zum Abwählen oder Beenden des Verknüpfungsmodus.

5. Voreinstellungsparameter
Werden in der Regelbearbeitung verwendet, um Testdaten pro Knoten festzulegen — besonders für „gleiche API, unterschiedliche Eingaben“.
5.1 Schritte
- Knoten tippen → Voreinstellungsparameter
- Abfrageparameter / Header / Body bearbeiten
- 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) | |
|---|---|---|
| Zugang | Knotenmenü → Voreinstellungsparameter | Knoten auf Ausführungsseite antippen |
| Persistenz | In Regel gespeichert, bleibt erhalten | Nur dieser Lauf, nicht zurückgeschrieben |
| Verwendung | Feste Testfälle | Temporä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

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
- Downstream-Knoten tippen → Abhängigkeit setzen
- Blauer Hinweis oben: „Zielknoten antippen, um Abhängigkeit zu erstellen“
- Upstream-Knoten antippen
- 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
- Downstream-Knoten tippen → Abhängigkeitsinjektion
- Mapping hinzufügen tippen und konfigurieren:
| Feld | Beschreibung | Beispiel |
|---|---|---|
| Quellknoten | Von welchem Upstream die Antwort kommt | Login-Knoten |
| Aus Upstream-Antwort extrahieren | Response-Header / JSON-Pfad im Body | data.token |
| In Anfrage injizieren | Header / Query-Parameter / Body | Header Authorization |
| Optionales Präfix | Zeichenkette vor dem injizierten Wert | Bearer |
- Mapping speichern

7.3 Typisches Szenario: Login + authentifizierte Anfrage
[Login POST /login] ──→ [Profil GET /user/profile]
│ ↑
Antwort: data.token Authorization = Bearer ${injiziertes token}
- Beide Anfragen hinzufügen
- Bei
GET /user/profile→ Abhängigkeit setzen →POST /loginantippen - Bei
GET /user/profile→ Abhängigkeitsinjektion:- Quelle: Login-Knoten, Body
data.token - Ziel: Header
Authorization - Präfix:
Bearer
- Quelle: Login-Knoten, Body
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
| Ausdruck | Ergebnis |
|---|---|
${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):
- Ein Knoten in der Regel verwendet
${variableName} - 🌐-Button erscheint rechts in der Statusleiste
- Antippen und Werte eingeben
- 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.

9. Ausführungsseite
9.1 Oberfläche

9.2 Vor der Ausführung
- Knoten tippen → Anfrage ändern (nur dieser Lauf, nicht in Regel gespeichert)
- Bei globalen Variablen → 🌐 tippen und Werte eingeben
9.3 Nach der Ausführung
- Knoten tippen → Ausführungsdetails (tatsächliche Anfrage, Antwort, Dauer, Fehler)
- Zurücksetzen in der Navigationsleiste (rot): alle Ergebnisse löschen und erneut ausführen
9.4 Knotenstatus
| Status | Bedeutung |
|---|---|
| Grauer Kreis | Ausstehend |
| Blauer Fortschritt | Lä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 /userhängt vonPOST /loginab;POST /orderhängt vonGET /userab - Token-Mapping auf
GET /userundPOST /orderkonfigurieren - Seriell: Login → Benutzerinfo → Bestellung
Szenario 3: Dynamische Parameter + festes Token
- Body:
{"ts":"${method.timestamp()}","id":"${method.uuid()}"} - Header:
Authorization: Bearer ${token} tokenvor 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 erstellen | Liste + → Name → Anfragen → ✓ |
| Gleiche API mit mehreren Eingaben testen | Anfrage mehrfach hinzufügen → Voreinstellungsparameter pro Knoten |
| Reihenfolge steuern | Abhängigkeit setzen → Upstream-Knoten antippen |
| Token automatisch übernehmen | Abhängigkeitsinjektion konfigurieren |
| Dynamischer Zeitstempel/UUID | ${method.timestamp()} etc. in Parametern |
| Token etc. teilen | ${token} schreiben → 🌐 auf Ausführungsseite |
| Parameter temporär ändern | Ausführungsseite → Knoten → Anfrage ändern |
| Anfragedetails ansehen | Nach Ausführung Knoten antippen |
| Erneut ausführen | Zurücksetzen → Replay ausführen |