Daten in Experimenten
Werte wandern durch einen Durchlauf: Ein Parameter wählt das Ziel, ein Feld einer Antwort wird zu einem Header der nächsten Anfrage, eine erzeugte ID geht in einem Befehl hinaus und kommt in einer Prüfung zurück. Diese Seite behandelt, woher diese Werte kommen und wie ein Feld sie verwendet.
| Quelle | Geschrieben als | Festgelegt wo |
|---|---|---|
| Parameter | {{api}} oder {{params.api}} | Bereich Parameter, ein Profil, Ausführen mit… |
| Variable | {{token}} oder {{vars.token}} | ein Knoten während des Durchlaufs: Wert extrahieren, ein Warteknoten, ein Senden, das auf eine Antwort wartet |
| Geheimnis | {{secret.API_TOKEN}} | der Anmeldeinformationsspeicher des Computers oder Umgebung und Dateien des Servers |
| Eingebauter Wert | {{run.seed}}, {{now.iso}}, {{counter}} | der Durchlauf selbst |
| Generator | {{uuid}}, {{random_int(1, 100)}} | aus dem Startwert des Durchlaufs gezogen |
Parameter
Ein Parameter ist ein benannter Textwert, den jedes Feld mit Vorlagen verwenden kann. Halten Sie Ziele in Parametern, sodass eine Adressänderung eine einzige Änderung ist statt einer pro Knoten.
Einen Parameter hinzufügen
- Drücken Sie Parameter (
{ }) in der Werkzeugleiste des Editors. - Drücken Sie auf der Registerkarte Standardwerte auf Parameter hinzufügen.
- Tippen Sie den Name und den Wert, zum Beispiel
apiundhttp://127.0.0.1:8080. - Schreiben Sie in ein Feld eines Knotens
{{api}}/login.
Jede Änderung im Bereich ist eine Bearbeitung des Experiments: Sie wird mit ihm gespeichert und mit Ctrl+Z rückgängig gemacht wie jede andere.
Regeln
| Regel | Grenze |
|---|---|
| Name | beginnt mit einem Buchstaben oder _, danach Buchstaben, Ziffern und _ |
| Reservierte Namen | vars, params, secret, run, node, now, uuid, counter, random_int, random_float, pick |
| Parameter pro Experiment | 64 |
| Größe eines Werts | 64 KiB |
| Namen | eindeutig; eine Variable darf nicht den Namen eines Parameters haben |
Ein Wert ist reiner Text und wird so eingefügt, wie er geschrieben ist: {{…}} in einem Wert wird nicht aufgelöst. Verlangt ein Feld einen Teil eines Parameters ({{config.ports[0]}}), wird der Wert als JSON gelesen; ein Wert, der kein JSON ist, hat keine Teile.
Ein Parameter, dessen Name ungültig, reserviert oder doppelt vergeben ist, hindert das Experiment nicht am Speichern, sodass Sie weiter tippen können; das Experiment läuft erst, wenn der Name korrigiert ist.
Profile
Ein Profil ist eine benannte Menge von Parameterwerten — Laptop, Bühne, Veranstaltungsort —, sodass das Wechseln des Ziels eine Wahl ist, keine Bearbeitung jedes Knotens. Ein Profil ändert einige Parameter; die anderen behalten ihren Standard.
Ein Profil anlegen
- Öffnen Sie Parameter und drücken Sie Profil. Eine neue Registerkarte öffnet sich.
- Benennen Sie es in Profilname um.
- Tippen Sie für jeden Parameter, den das Profil ändert, seinen Wert. Ein leeres Feld behält den Standard, im Feld grau angezeigt; Standardwert verwenden (↺) löscht einen Wert.
- Drücken Sie Aktivieren, um damit auszuführen. Die Registerkarte des aktiven Profils trägt ● Aktiv. Aktivieren auf der Registerkarte Standardwerte kehrt zu den Standardwerten zurück.
Sobald ein Experiment Profile hat, wechselt eine Liste Profil in der Werkzeugleiste zwischen ihnen. Das aktive Profil wird von Durchläufen, der Vorschau und Jetzt senden verwendet, und es wird im Experiment gespeichert, sodass eine exportierte Datei mit denselben Zielen öffnet. Profil löschen löscht das angezeigte Profil.
| Regel | Grenze |
|---|---|
| Profile pro Experiment | 32 |
| Name | 1–64 Zeichen, eindeutig (Leerzeichen an den Enden zählen nicht) |
| Werte | nur Parameter, die es gibt; höchstens 64 |
Das Umbenennen oder Entfernen eines Parameters ändert ihn in jedem Profil auf einmal.
Welchen Wert ein Durchlauf verwendet
Später gewinnt:
- der Standard des Parameters, auf der Registerkarte Standardwerte;
- der Wert des aktiven Profils, wenn es einen setzt;
- ein in Ausführen mit… nur für diesen Durchlauf getippter Wert — siehe mit anderen Werten ausführen.
Ausführen mit… darf nur Parameter setzen, die das Experiment hat. Der Bericht des Durchlaufs hält das Profil, die für den Durchlauf getippten Werte und jeden verwendeten Wert fest.
Profile, die nicht laufen würden
Jedes Mal, wenn das Experiment geprüft wird, werden auch die anderen Profile und die Standardwerte geprüft. Eines, das fehlschlagen würde — etwa eine URL, die nicht http:// oder https:// ist —, trägt ⚠ in den Registerkarten und in der Liste der Werkzeugleiste, und sein Tooltip nennt den Grund. Es hält Durchläufe mit dem verwendeten Profil nicht auf.
Vorlagen
Text in {{ }} ist ein Ausdruck; alles andere in einem Feld bleibt genau so erhalten, wie es geschrieben ist.
{{api}}/users/{{user.id}}?trace={{uuid}}
Bearer {{secret.API_TOKEN}}- Leerzeichen in den Klammern spielen keine Rolle:
{{ token }}ist{{token}}. \{{schreibt ein wörtliches{{.- Ein
}}allein ist reiner Text. - Ein Wert wird so eingefügt, wie er ist, ohne Anführungszeichen. Schreiben Sie in einem JSON-Body die Anführungszeichen selbst:
"id": "{{uuid}}".
Namen
| Ausdruck | Wert |
|---|---|
{{name}} | die Variable name, wenn auf diesem Pfad eine gesetzt ist, sonst der Parameter name |
{{vars.name}} | nur die Variable |
{{params.name}} | nur der Parameter |
{{secret.NAME}} | das gespeicherte Geheimnis NAME — siehe Geheimnisse |
{{name.field}} | ein Feld eines JSON-Werts |
{{name[0]}} | ein Element eines JSON-Arrays |
{{name["a b"]}}, {{name['a b']}} | ein Feld, dessen Name andere Zeichen enthält |
Ein Feldname nach . darf Buchstaben, Ziffern, _ und - enthalten. Schritte verketten sich: {{reply.args[0]}}, {{order.items[2].sku}}.
Wie Werte geschrieben werden
| Wert | Geschrieben als |
|---|---|
| Text | der Text |
| Zahl | ihre kürzeste Form: 42, 0.5 |
true, false | true, false |
null | null |
| Objekt, Array | kompaktes JSON: ["x","y"] |
Eingebaute Werte
| Ausdruck | Wert |
|---|---|
{{run.id}} | die Jobnummer des Durchlaufs; 0 in der Vorschau und in Jetzt senden |
{{run.seed}} | der Startwert dieses Durchlaufs |
{{node.id}} | die id des ausgeführten Knotens |
{{now}} | die aktuelle Zeit, Unix-Millisekunden |
{{now.iso}} | die aktuelle Zeit in UTC, ISO 8601 mit Millisekunden: 2026-09-30T12:34:56.789Z |
{{counter}} | wie oft dieser Knoten in diesem Durchlauf gelaufen ist, dieses Mal eingeschlossen, ab 1 |
{{counter}} zählt pro Knoten: im Rumpf einer Schleife ist es die Nummer der Iteration, in einem Knoten, der sich wiederholt, die Nummer des Sendens. run, node und now haben nur die aufgelisteten Felder; alles andere ist ein Fehler.
Generatoren
| Ausdruck | Wert |
|---|---|
{{uuid}} oder {{uuid()}} | eine UUID der Version 4 |
{{random_int(min, max)}} | eine ganze Zahl von min bis max, beide eingeschlossen; ganzzahlige Argumente, min ≤ max |
{{random_float(min, max)}} | eine Zahl von min bis ausschließlich max, mit 3 Dezimalstellen; min < max |
{{random_float(min, max, digits)}} | dasselbe mit digits Dezimalstellen, 0–9 |
{{pick(a, b, c)}} | eines der Argumente, mindestens eines |
Argumente werden durch Kommas getrennt. Eines in Anführungszeichen ("dark blue" oder 'a, b') darf alles außer seinem eigenen Anführungszeichen enthalten; eines ohne Anführungszeichen darf Buchstaben, Ziffern und _ - . : / + enthalten. Ein leeres Argument ist ein Fehler.
Jeder Generator zieht aus dem Startwert des Durchlaufs. Die Werte einer Ausführung eines Knotens hängen nur vom Startwert, der id des Knotens und davon ab, wie oft der Knoten gelaufen ist, sodass parallele Zweige nie die Werte des jeweils anderen ändern, und ein Durchlauf mit demselben Startwert erzeugt dieselben Werte erneut. Ziehungen innerhalb eines Knotens folgen der Reihenfolge seiner Felder. {{now}} und {{run.id}} sind nicht reproduzierbar. Siehe Startwerte.
Vorschläge
Das Tippen von {{ in einem Feld mit Vorlagen oder Ctrl+Space öffnet eine Liste in vier Gruppen: Parameter mit ihren Werten, Variablen, die vor diesem Knoten gesetzt wurden, mit dem Knoten, der sie setzt (auch Felder einer Antwort, etwa reply.args[0]), Geheimnisse und Generatoren. ↑ und ↓ wählen, Enter oder Tab fügt ein, Esc schließt die Liste und behält das Feld.
Unbekannte Namen sind Fehler
Ein Name ohne Wert wird nie zu einer leeren Zeichenkette. Vor einem Durchlauf muss jeder Name, den ein Feld verwendet, ein Parameter, ein gültiger Geheimnisname oder eine Variable sein, die auf jedem Pfad gesetzt ist, der zu dem Knoten führt. Der Editor zeigt auf den Knoten und das Feld:
| Problem | Vor dem Durchlauf | Während des Durchlaufs |
|---|---|---|
| Ein Name, den niemand setzt | name.unknown | — |
| Eine Variable, die nur auf einigen Pfaden gesetzt ist | name.not_on_every_path | — |
{{params.x}} ohne einen Parameter x | param.unknown | — |
| Ein Feld, das ein Wert nicht hat | — | template.no_field |
Nicht geschlossenes {{, ein leeres {{}}, ein fehlerhaftes Argument | template.*, mit der Position | — |
Die Texte dieser Codes stehen unter Fehler.
Welche Felder Vorlagen annehmen
| Knoten | Felder mit Vorlagen |
|---|---|
| HTTP-Anfrage | URL, Header-Namen und -Werte, Body, der Benutzername und das Passwort von Basic und Digest, der Bearer-Token |
| OSC-Nachricht | Ziel, Adresse, Textargumente; mit einer Antwort: ihr Adressmuster und die Regelwerte |
| UDP-Datagramm | Ziel, Nutzdaten; mit einer Antwort: ihr Muster |
| TCP-Nachricht | Host, Nutzdaten |
| MQTT veröffentlichen | Broker-Host, Topic, Nutzdaten |
| Log-Markierung | Nachricht |
| Antworttext | erwarteter Text |
| Antwort-Header | Header-Name, erwarteter Text |
| Wert prüfen, Nach Wert verzweigen, die Abbruchbedingung einer Schleife | Wert, erwarteter Wert |
| Auf OSC warten | Adressmuster, Regelwerte |
| Auf UDP warten, Auf WebSocket warten | Muster |
| Auf MQTT warten | Broker und Topic (nur Parameter), Muster |
| Auf HTTP-Anfrage warten | Pfadmuster, Bedingungen |
| Störung | Empfangen und Ziel (nur Parameter) |
| WebSocket verbinden | URL, Header-Namen und -Werte |
| WebSocket senden | Nutzdaten |
| WebSocket schließen | Grund |
Zahlen — Ports, Timeouts, Verzögerungen, Status, typisierte OSC-Zahlen — und die Empfangsadressen von Warteknoten sind wörtlich. Ein Emulator rendert seine eigenen Antworten mit dem Eingetroffenen ({{request.…}}) und den Parametern; siehe Störungen.
Nur Parameter. Manche Felder werden vor dem ersten Schritt geöffnet, wenn es noch keine Variable gibt: der Broker und das Topic eines Auf MQTT warten, das Empfangen und Ziel eines Störung. Sie nehmen Text und Parameter an, nichts anderes (node.params_only).
Wie Literale geprüft. Ein Feld, das nur Parameter verwendet, wird vor dem Durchlauf aufgelöst und als der Text geprüft, den der Durchlauf senden wird: Eine URL muss http:// oder https:// sein, ein OSC-Ziel IP:port oder host:port, ein Header-Name gültig. Ein Feld mit Variablen oder Generatoren wird geprüft, wenn es läuft.
Vorschau
Hat der ausgewählte Knoten eine Vorlage, zeigen seine Eigenschaften, was er mit den jetzt bekannten Werten tun wird: Wird gesendet für ein Senden, Wartet auf für ein Warten, Vergleicht für einen Vergleich. Die Engine löst es auf, mit demselben Code, den ein Durchlauf verwendet, sodass die Vorschau dem Durchlauf nie widerspricht.
- Parameter kommen aus dem aktiven Profil.
- Variablen kommen aus dem, was der Editor in dieser Sitzung gesehen hat: die Schritte des letzten Durchlaufs und Jetzt senden.
- Ein gespeichertes Geheimnis erscheint als
••••. - Ein Name ohne Wert bleibt wie geschrieben, und die Vorschau listet ihn auf. Ein Geheimnis, das nicht gespeichert ist, wird getrennt aufgelistet.
- Generatoren verwenden den fixierten Startwert des Experiments oder
0, wenn keiner fixiert ist, als erste Ausführung des Knotens. Mit einem fixierten Startwert zeigt die Vorschau die erzeugten Werte, die die erste Ausführung des Knotens in einem Durchlauf senden wird.
Werte extrahieren
Wert extrahieren liest einen Wert der neuesten HTTP-Antwort auf seinem Pfad und schreibt ihn in eine Variable.
| Feld | Was |
|---|---|
| Variable | die zu schreibende Variable; es gelten die Benennungsregeln von Parametern |
| Entnehmen aus | woher der Wert kommt (unten) |
| JSON-Pfad, Header-Name oder Muster (Gruppe 1, falls vorhanden) | was gelesen wird, je nach Quelle |
| Entnehmen aus | Liest | Wert |
|---|---|---|
| JSON-Feld | den Body als JSON, an einem Pfad | den JSON-Wert: Text, Zahl, Objekt, Array |
| Header | den ersten Header mit diesem Namen, unabhängig von der Schreibweise | Text |
| Statuscode | den Statuscode | eine Zahl |
| Gesamter Body | den ganzen Body | Text |
| Regulärer Ausdruck | den ersten Treffer im Body | die Erfassungsgruppe 1, wenn das Muster eine hat, sonst den ganzen Treffer |
JSON-Pfade. $.token, $.items[0].id, $["a b"], $['a b']['c-d']; das führende $. darf weggelassen werden (token, items[0].id), und $ allein ist der ganze Body.
Reguläre Ausdrücke verwenden die Syntax der Rust-regex-Engine, die kein Look-around und keine Rückverweise hat. Der Treffer wird überall im Body gesucht; verankern Sie ihn mit ^ und $, wenn das wichtig ist.
Der Schritt schlägt fehl und nennt, was fehlt, wenn:
- vor ihm auf diesem Pfad keine HTTP-Anfrage lief (
check.no_response; der Editor lehnt bereits einen Graphen ab, in dem keine laufen kann,graph.needs_http); - der Body kein JSON ist oder der Pfad nicht darin vorkommt;
- der Header nicht da ist oder das Muster nicht passt;
- der Body über den 256 KiB liegt, die eine Antwort behält, bei einem JSON-Pfad oder dem ganzen Body, und bei einem Muster, das im behaltenen Teil nichts getroffen hat (
extract.truncated).
Die Zeitleiste zeigt den geschriebenen Wert: token = abc123.
Durch Klicken extrahieren
Jetzt senden an einem HTTP-Anfrage zeigt seine JSON-Antwort. Klicken Sie einen Wert darin an: Nach der Anfrage wird ein Knoten Wert extrahieren hinzugefügt, mit ausgefülltem Pfad und einem vom Schlüssel übernommenen Namen, und der Wert ist der Vorschau sofort bekannt.
Variablen
Eine Variable hält einen JSON-Wert. Diese Knoten schreiben eine:
| Knoten | Schreibt | Am Ausgang |
|---|---|---|
| Wert extrahieren | den extrahierten Wert | seinen Ausgang |
| Auf OSC warten, Auf UDP warten, Auf MQTT warten, Auf HTTP-Anfrage warten, Auf WebSocket warten | was eingetroffen ist, Standardname reply (request bei HTTP) | nur Treffer |
| OSC-Nachricht, UDP-Datagramm mit auf eine Antwort warten | die Antwort, Standardname reply | seinen Ausgang |
Was ein Warteknoten schreibt, ist ein Objekt; spätere Felder lesen seine Teile:
| Warten | Felder |
|---|---|
| OSC | address, args, from, ms |
| UDP | text, hex, bytes, from, ms und match bei einem Muster |
| MQTT | topic und die Felder von UDP |
| WebSocket | die Felder von UDP und json, wenn die Nachricht JSON ist |
| HTTP-Anfrage | method, path, query, headers, body, json, params, from, ms |
ms ist die Zeit von der letzten Aktion des Zweigs bis zum Eintreffen. Der genaue Inhalt steht in der Referenz der Knoten.
Wo eine Variable bekannt ist
Eine Variable existiert ab dem Ausgang, der sie schreibt, auf den Pfaden, die durch diesen Ausgang führen:
- Nach einer Zusammenführung alternativer Pfade — dem Ja und Nein eines Zweigs, die wieder zusammentreffen — ist nur das bekannt, was jeder Pfad gesetzt hat.
- Nach Zweige zusammenführen ist bekannt, was irgendein Zweig dorthin gesetzt hat: Sie alle liefen.
- Nach dem Fertig oder Limit einer Schleife und in ihrer Abbruchbedingung ist bekannt, was jede Iteration des Rumpfs setzt.
- Die Variable eines Warteknotens ist nach seinem Timeout-Ausgang nicht bekannt.
Jeder parallele Zweig arbeitet an seiner eigenen Kopie der Variablen. Ein Join führt die Kopien in der Reihenfolge seiner eingehenden Verbindungen zusammen, wobei die spätere Verbindung einen Namen gewinnt, den beide gesetzt haben, sodass das Ergebnis nie davon abhängt, welcher Zweig zuerst fertig wurde. Siehe wie ein Durchlauf sich bewegt.
Werte vergleichen
Wert prüfen lässt den Durchlauf fehlschlagen, wenn ein Vergleich nicht gilt; Nach Wert verzweigen verlässt den Knoten durch Ja oder Nein; eine Schleife verwendet denselben Vergleich als Abbruchbedingung. Jeder hat einen Wert, einen Bedingung und einen Erwartet-Wert, und beide Texte sind Vorlagen:
| Wert | Bedingung | Erwartet |
|---|---|---|
{{status}} | kleiner als | 300 |
{{reply.args[0]}} | gleich | {{nonce}} |
| Bedingung | Gilt, wenn |
|---|---|
| gleich, ungleich | die beiden gleich (nicht gleich) sind — als Zahlen, wenn beide Zahlen sind (200 gleich 200.0), sonst als exakter Text, Schreibweise eingeschlossen |
| kleiner als, höchstens, größer als, mindestens | als Zahlen; eine Seite, die keine Zahl ist, lässt den Schritt fehlschlagen (compare.not_numbers) statt eines stillen Nein |
| enthält | der Wert enthält den erwarteten Text, Schreibweise eingeschlossen |
| passt auf Regex | der reguläre Ausdruck im erwarteten Wert passt irgendwo im Wert |
| ist leer, ist nicht leer | der Wert ist leer oder nicht, nach dem Trimmen von Leerzeichen; der erwartete Wert wird nicht verwendet |
Eine Zahl ist Text, der nach dem Trimmen von Leerzeichen als solche gelesen wird: 42, -1.5, 1e3. Die Zeitleiste zeigt den Vergleich, wie er durchgeführt wurde, 401 = 200, jede Seite auf 120 Zeichen gekürzt.
Geheimnisse
Ein Token oder Passwort geht als {{secret.NAME}} in ein Feld. Die Experimentdatei behält nur den Namen; der Wert bleibt, wo er gespeichert ist, und erreicht nie die Oberfläche.
Wo Geheimnisse liegen
| Wo Signal Lab läuft | Speicher | Aus der Oberfläche |
|---|---|---|
| Desktop-App unter Windows | die Windows-Anmeldeinformationsverwaltung, unter dem Dienst SignalLab, ein Eintrag pro Name | setzen, ersetzen, entfernen |
| Desktop-App unter Linux | keiner: Ein Durchlauf, der ein Geheimnis braucht, schlägt mit secret.unsupported fehl | — |
| Server | die Umgebungsvariable SIGNALLAB_SECRET_<NAME>, sonst die Datei <NAME> in seinem Geheimnisordner, /run/secrets/signallab, sofern nicht anders gesetzt | nur lesend |
signallab auf der Kommandozeile | wie ein Server, oder die Windows-Anmeldeinformationsverwaltung mit --secrets system | — |
Die Überschrift des Bereichs Geheimnisse hat einen Tooltip, der sagt, welcher davon gilt, wo Sie sind: der Windows-Speicher, Umgebung und Dateien des Servers oder — in der Desktop-App unter Linux — dass es keinen Speicher gibt. Dort sagt secret.unsupported, dass die Geheimnisse in der Windows-Anmeldeinformationsverwaltung gehalten werden, die das System nicht hat.
Ein Geheimnis gehört dem Computer oder dem Server, nicht einem Experiment: Zwei Experimente, die {{secret.API_TOKEN}} verwenden, verwenden denselben Wert.
Auf einem Server gewinnt die Umgebungsvariable über die Datei. Ein abschließender Zeilenumbruch einer Datei gehört nicht zum Wert, und eine leere Datei zählt als kein Geheimnis. Der Ordner des Servers wird mit --secrets-dir oder SIGNALLAB_SECRETS_DIR gesetzt; siehe den Server. Für die Kommandozeile siehe signallab run.
| Regel | Grenze |
|---|---|
| Name | beginnt mit einem Buchstaben oder _, danach Buchstaben, Ziffern und _; höchstens 128 Zeichen |
| Wert | nicht leer, höchstens 16 KiB |
Ein Geheimnis setzen
Unter Windows:
- Öffnen Sie Parameter. Der Bereich Geheimnisse listet jedes Geheimnis auf, das die Felder des Experiments verwenden, jeweils gespeichert oder auf diesem Computer nicht gesetzt.
- Drücken Sie Festlegen… neben dem Namen oder Geheimnis für einen Namen, den noch kein Feld verwendet.
- Tippen Sie den Wert — das Feld zeigt Punkte — und drücken Sie Speichern oder Enter. Das Feld wird geleert; nichts kann den Wert zurücklesen.
Ersetzen… speichert einen neuen Wert und Entfernen löscht ihn aus dem Anmeldeinformationsspeicher. Ein in dieser Sitzung gespeicherter Name wird auch in den Vorschlägen angeboten.
In einem Browser, der mit einem Server verbunden ist, sagt der Bereich nur auf dem Server gesetzt oder auf dem Server nicht gesetzt: Setzen Sie den Wert dort, wo der Server läuft, auf eine von zwei Arten:
# in the server's environment
SIGNALLAB_SECRET_API_TOKEN='…'
# or as a file in its secrets folder
printf '%s' '…' > /run/secrets/signallab/API_TOKENEine Datei wird jedes Mal gelesen, wenn ein Durchlauf startet, eine geänderte Datei zählt also ab dem nächsten Durchlauf; eine geänderte Umgebungsvariable erfordert einen Neustart des Servers.
Vor einem Durchlauf
Jedes Geheimnis, das die Felder des Durchlaufs verwenden, muss gespeichert sein. Ein fehlendes stoppt den Durchlauf vor jedem Verkehr, am ersten Knoten und Feld, die es verwenden (secret.missing). Jetzt senden prüft dasselbe für seinen Knoten.
Maskierung
Solange ein Durchlauf oder ein Jetzt senden Geheimnisse verwendet, wird jedes Vorkommen ihrer Werte in allem, was die Engine verlässt, durch •••• ersetzt:
- Schritttexte, Fehler und die Variablen, die ein Schritt geschrieben hat;
- der Bericht des Durchlaufs;
- das Ergebnis von Jetzt senden, die gezeigte HTTP-Antwort eingeschlossen;
- die Frames des Inspektor, die aufgezeichnet wurden, solange der Durchlauf dauert — in einem Hex-Dump wird jedes Byte eines Werts zu
*, sodass die Offsets stimmen.
Basic-Authentifizierung sendet name:password in Base64; enthält einer der Teile ein Geheimnis, wird auch dieser Base64-Text maskiert. Der Verkehr selbst trägt den echten Wert. Die Vorschau zeigt ein gespeichertes Geheimnis als ••••. Die Antworten eines Emulator können keine Geheimnisse verwenden.
Befehle
Die Vorschau ist experiment_resolve; Geheimnisse werden mit secret_status, secret_set und secret_delete aufgelistet, gesetzt und entfernt. Kein Befehl gibt den Wert eines Geheimnisses zurück.