Echolot
Referenz

Dynamische Werte

Alle dynamischen Werte von Echolot mit ihren Argumenten und einem Beispiel, gruppiert wie in der Vorschlagsliste, die nach zwei öffnenden geschweiften Klammern erscheint.

Ein dynamischer Wert ist eine Funktion innerhalb von {{ }}: {{$uuid}}, {{$base64('heidi:alpenglow')}}, {{$responseJSONPath('auth/sign-in', '$.access_token')}}. Echolot berechnet ihn, wenn die Anfrage gesendet wird. Dynamische Werte funktionieren überall, wo Variablen funktionieren: in der URL, in Headern, Bodys, Auth-Feldern, Nachrichten und Einstellungen. Wie du sie in der App auswählst und bearbeitest, steht unter dynamische Werte.

Schreibweise

  • Ein dynamischer Wert beginnt mit $: {{$timestamp}}. Ohne Argumente sind die Klammern optional.
  • Argumente stehen in Klammern, durch Kommas getrennt: Text in Anführungszeichen ('…' oder "…"), Zahlen, Variablennamen ohne Anführungszeichen oder andere dynamische Werte.
  • Textargumente können eigene Tokens enthalten: {{$base64('{{email}}:{{password}}')}}. }} innerhalb von Anführungszeichen beendet das Token nicht.
  • Was sich nicht parsen lässt, bleibt so stehen, wie du es geschrieben hast, und wird gemeldet, sodass ein verirrtes {{ nie eine Anfrage zerstört.
{{$sha256('{{body}}', 'base64')}}
{{$date('yyyy-MM-dd', -86400, 'Europe/Zurich')}}
{{$hmacSha256(apiSecret, $timestamp)}}

Antworten

Diese lesen die neueste Antwort einer anderen gesicherten Anfrage, angegeben über ihren Pfad (folder/request, wie in auth/sign-in). Jeder nimmt ein optionales letztes Argument, das bestimmt, ob diese Anfrage zuerst gesendet wird:

Letztes ArgumentBedeutung
'if-missing' (Standard)Sendet sie zuerst, wenn sie noch keine Antwort hat.
'fresh'Sendet sie jedes Mal zuerst; in einem Durchlauf einmal pro Durchlauf.
'latest'Sendet sie nie; verwendet die neueste Antwort.
WertArgumenteWas er liefert
$responseJSONPathAnfrage, JSONPathEinen Wert aus dem Body der Antwort, mit JSONPath ausgewählt. {{$responseJSONPath('auth/sign-in', '$.access_token')}}
$responseKeyPathAnfrage, SchlüsselpfadEinen Wert, mit einem Schlüsselpfad wie data.items.0.id ausgewählt. {{$responseKeyPath('orders/list-orders', 'items.0.id')}}
$responseJqAnfrage, jq-FilterWas ein jq-Filter aus dem Body macht; mehrere Ergebnisse kommen eines pro Zeile. {{$responseJq('catalog/list-products', '.items[0].sku')}}
$responseXPathAnfrage, XPathEinen Wert aus einer XML-Antwort. {{$responseXPath('echo/xml', '/catalog/product[1]/@sku')}}
$responseRegexAnfrage, MusterDen ersten Treffer eines regulären Ausdrucks im Body: seine erste Gruppe, wenn er eine hat. {{$responseRegex('echo/html', '<title>(\\w+)</title>')}}
$responseHeaderAnfrage, HeaderEinen Header der Antwort. {{$responseHeader('orders/create-order', 'Location')}}
$responseCookieAnfrage, CookieDen Wert eines Cookies, den die Antwort gesetzt hat. {{$responseCookie('echo/set-cookie', 'flavour')}}
$responseStatusAnfrageDen Statuscode. {{$responseStatus('auth/sign-in')}}
$responseBodyAnfrageDen ganzen Body als Text. {{$responseBody('auth/who-am-i')}}
$responseBodyLengthAnfrageDie Größe des Bodys in Bytes. {{$responseBodyLength('catalog/export')}}
$responseAnfrage, AbfrageEines der obigen, je nach Form der Abfrage: ein JSONPath ($.token), ein XPath (/a/b oder xpath:…), regex:…, jq:…, keypath:…, header:Name oder cookie:Name. {{$response('auth/sign-in', 'header:Content-Type')}}

Who am I könnte sein Token zum Beispiel direkt aus Sign in nehmen und es bei Bedarf zuerst senden:

Authorization: Bearer {{$responseJSONPath('auth/sign-in', '$.access_token')}}

Eine Anfrage, die die Antwort einer anderen im Kreis liest, wird abgelehnt, und der Kreis wird genannt. Erfassungen aus Antworten sind der andere Weg, Werte zwischen Anfragen weiterzugeben.

Anfragen

Diese lesen eine Anfrage so, wie sie gesendet würde, aufgelöst. Das erste Argument ist der Pfad einer gesicherten Anfrage oder leer ('') für die Anfrage, die gerade gesendet wird.

WertArgumenteWas er liefert
$requestURLAnfrageIhre URL, aufgelöst. {{$requestURL('')}}
$requestMethodAnfrageIhre Methode. {{$requestMethod('')}}
$requestHeaderAnfrage, HeaderEinen Header, aufgelöst, einschließlich dessen, was ihre Auth hinzufügt. {{$requestHeader('', 'Content-Type')}}
$requestQueryAnfrage, ParameterEinen Query-Parameter ihrer URL, dekodiert. {{$requestQuery('', 'page')}}
$requestBodyAnfrageIhren Body, aufgelöst, als Text. {{$requestBody('')}}
$requestJSONPathAnfrage, JSONPathEinen Wert aus ihrem JSON-Body. {{$requestJSONPath('orders/create-order', '$.lines[0].sku')}}
$requestJqAnfrage, jq-FilterWas ein jq-Filter aus ihrem JSON-Body macht. {{$requestJq('', '.lines[0].quantity')}}
$requestVariableAnfrage, VariableEine Variable so, wie diese Anfrage sie sieht. {{$requestVariable('auth/sign-in', 'email')}}

Üblich ist, eine Anfrage mit dem zu signieren, was sie sendet:

X-Signature: {{$hmacSha256(apiSecret, $requestBody(''))}}

Codierung

WertArgumenteWas er liefert
$base64TextDen Text als Base64. {{$base64('heidi:alpenglow')}}
$base64DecodeBase64Base64 oder Base64URL, zu Text dekodiert. {{$base64Decode('aGVpZGk=')}}
$base64UrlTextDen Text als Base64URL, ohne Padding. {{$base64Url('{"alg":"none"}')}}
$urlEncodeTextDen Text, für eine URL-Komponente prozentkodiert. {{$urlEncode('ultralight tent')}}
$urlDecodeTextProzentkodierten Text, dekodiert; + bleibt +. {{$urlDecode('ultralight%20tent')}}
$hexTextDie UTF-8-Bytes des Texts als Hex. {{$hex('Grüezi')}}
$hexDecodeHexHex, zu Text dekodiert. {{$hexDecode('6869')}}
$jsonEscapeTextDen Text, maskiert für die Verwendung in einem JSON-String, ohne die Anführungszeichen. {{$jsonEscape(note)}}
$newlinekeineEinen Zeilenvorschub (\n).
$crkeineEinen Wagenrücklauf (\r).
$crlfkeineEinen Wagenrücklauf und Zeilenvorschub (\r\n).
$tabkeineEinen Tabulator.
$unescapeSequenzText, dessen Escape-Sequenzen in Zeichen umgewandelt sind: \n, \r, \t, \0, \\, \xHH, \uHHHH. {{$unescape('café')}}
$basicAuthBenutzer, PasswortEinen Authorization-Wert für HTTP Basic: Basic und Base64 von user:password. {{$basicAuth(email, password)}}
$jwtPayload, Secret, Algorithmus (optional)Ein JWT aus der JSON-Payload, mit dem Secret signiert: HS256, sofern du nicht HS384 oder HS512 wählst. {{$jwt('{"sub": "heidi"}', jwtSecret)}}

Hashes und Signaturen

Jeder Hash nimmt den Text und optional die Ausgabe: 'hex' (Standard), 'base64' oder 'base64url'. Jedes HMAC nimmt den Schlüssel, die Nachricht und optional die Ausgabe.

WertArgumenteWas er liefert
$md5Text, AusgabeDen MD5 des Texts. {{$md5('alpenglow')}}
$sha1Text, AusgabeDen SHA-1. {{$sha1('alpenglow')}}
$sha224Text, AusgabeDen SHA-224.
$sha256Text, AusgabeDen SHA-256. {{$sha256($requestBody(''), 'base64')}}
$sha384Text, AusgabeDen SHA-384.
$sha512Text, AusgabeDen SHA-512.
$hmacMd5Schlüssel, Nachricht, AusgabeDas HMAC-MD5 der Nachricht mit dem Schlüssel.
$hmacSha1Schlüssel, Nachricht, AusgabeDas HMAC-SHA1.
$hmacSha224Schlüssel, Nachricht, AusgabeDas HMAC-SHA224.
$hmacSha256Schlüssel, Nachricht, AusgabeDas HMAC-SHA256. {{$hmacSha256(apiSecret, $timestamp)}}
$hmacSha384Schlüssel, Nachricht, AusgabeDas HMAC-SHA384.
$hmacSha512Schlüssel, Nachricht, AusgabeDas HMAC-SHA512.

Zeit

Alle diese Werte sind der Moment, in dem die Anfrage gesendet wird.

WertArgumenteWas er liefert
$timestampkeineUnix-Zeit in Sekunden: 1793525000.
$timestampMskeineUnix-Zeit in Millisekunden: 1793525000123.
$isoTimestampkeineISO 8601 in UTC, mit Millisekunden: 2026-11-01T09:30:00.123Z.
$httpDatekeineEin HTTP-Datum, für Date oder If-Modified-Since: Sun, 01 Nov 2026 09:30:00 GMT.
$dateFormat, Versatz in Sekunden (optional), Zeitzone (optional)Die Zeit in einem Unicode-Datumsmuster, um den Versatz verschoben, in der Zeitzone (UTC, sofern nicht angegeben). {{$date('yyyy-MM-dd')}}, {{$date('yyyy-MM-dd HH:mm', 3600, 'Europe/Zurich')}}

Zufall

Bei jedem Senden ein neuer Wert.

WertArgumenteWas er liefert
$uuidkeineEine zufällige UUID in Kleinbuchstaben. Auch $guid und $randomUUID. {{$uuid}}
$randomIntMinimum, MaximumEine ganze Zahl zwischen den beiden, beide eingeschlossen. Ein Argument ist das Maximum, ab 0; keines ergibt 0 bis 1000. {{$randomInt(1, 5)}}
$randomStringLänge, Zeichen (optional)Zufällige Zeichen, 16, sofern nicht angegeben (bis 4096): Buchstaben und Ziffern oder die angegebenen Zeichen. {{$randomString(8, 'ABCDEF0123456789')}}
$randomHexBytesZufällige Bytes als Hex, 16, sofern nicht angegeben (bis 2048); doppelt so viele Ziffern. {{$randomHex(8)}}

Create order in Alpenglow sendet Idempotency-Key: {{$uuid}}, sodass jede Bestellung, die es aufgibt, eine neue ist.

Beispieldaten

Erfundene Werte für Anfrage-Bodys, Testdaten und Mock-Routen: Namen, Adressen, Firmen, Preise, Datumswerte, Lorem ipsum und mehr, bei jedem Senden neu. Die Namen sind die dynamischen Variablen von Postman, sodass Sammlungen, die sie verwenden, hier echte Werte senden. In der {{-Liste stehen sie unter Beispieldaten, nach Gruppen.

Argumente sind optional; Zahlen reichen von -10^15 bis 10^15. Mock-Bodys können außerdem $uuid (als $randomUUID), $randomInt, $randomString, $randomHex, $timestamp, $timestampMs und $isoTimestamp aus Zufall und Zeit verwenden. Im Terminal füllt echolot fake eine Vorlage damit.

Allgemein

WertArgumenteWas er liefert
$randomFloatMinimum, Maximum, DezimalstellenEine Dezimalzahl zwischen den Grenzen (0 bis 1000), mit 2 Dezimalstellen, sofern nicht anders angegeben.
$randomDigitsLängeEine Zeichenfolge zufälliger Ziffern, 6, sofern keine Länge angegeben ist.
$randomBooleankeinetrue oder false.
$randomElementAuswahlEines der Argumente, zufällig gewählt: $randomElement(active, paused, closed).
$randomAlphaNumerickeineEin Buchstabe oder eine Ziffer.
$randomColorkeineEin Farbname: teal.
$randomHexColorkeineEine Farbe als Hex: #3f8acb.
$randomAbbreviationkeineEine technische Abkürzung: SQL.

Namen und Berufe

WertArgumenteWas er liefert
$randomFirstNamekeineEin Vorname: Amelia.
$randomLastNamekeineEin Nachname: Okafor.
$randomFullNamekeineVor- und Nachname: Amelia Okafor.
$randomNamePrefixkeineMr., Ms., Dr.…
$randomNameSuffixkeineJr., PhD…
$randomJobAreakeineMobility, Security…
$randomJobDescriptorkeineLead, Senior…
$randomJobTitlekeineSenior Security Engineer.
$randomJobTypekeineEngineer, Designer…

Internet

WertArgumenteWas er liefert
$randomEmailkeineEine E-Mail-Adresse: amelia.okafor@gmail.com.
$randomExampleEmailkeineEine E-Mail-Adresse bei example.com, example.net oder example.org.
$randomUserNamekeineEin Benutzername: amelia_okafor42.
$randomPasswordkeine15 zufällige Buchstaben und Ziffern.
$randomUrlkeinehttps://northwind.io
$randomDomainNamekeinenorthwind.io
$randomDomainSuffixkeinecom, io, dev…
$randomDomainWordkeinenorthwind
$randomIPkeineEine IPv4-Adresse: 192.168.14.7.
$randomIPV6keineEine IPv6-Adresse.
$randomMACAddresskeineEine MAC-Adresse: 3a:f1:0c:5e:92:b4.
$randomProtocolkeinehttp oder https.
$randomSemverkeineEine semantische Version: 2.14.3.
$randomLocalekeineEine Locale: de_CH.
$randomUserAgentkeineDer User-Agent eines Browsers.

Adressen und Orte

WertArgumenteWas er liefert
$randomStreetNamekeineMaple Avenue
$randomStreetAddresskeine42 Maple Avenue
$randomCitykeineLisbon
$randomZipCodekeineEine fünfstellige Postleitzahl. Auch $randomZip.
$randomCountrykeinePortugal
$randomCountryCodekeineEin Ländercode nach ISO 3166: PT.
$randomLatitudekeineEin Breitengrad: 38.7223.
$randomLongitudekeineEin Längengrad: -9.1393.

Telefon

WertArgumenteWas er liefert
$randomPhoneNumberkeineEine Telefonnummer: 555-201-4417.
$randomPhoneNumberExtkeineEine Telefonnummer mit Ländervorwahl: +44 555-201-4417.

Firmen

WertArgumenteWas er liefert
$randomCompanyNamekeineNorthwind Labs
$randomCompanySuffixkeineInc, LLC, GmbH…
$randomBskeinestreamline seamless platforms
$randomBsAdjectivekeineseamless
$randomBsBuzzkeinestreamline
$randomBsNounkeineplatforms
$randomCatchPhrasekeineAdaptive real-time framework
$randomCatchPhraseAdjectivekeineAdaptive
$randomCatchPhraseDescriptorkeinereal-time
$randomCatchPhraseNounkeineframework

Finanzen

WertArgumenteWas er liefert
$randomPriceMinimum, MaximumEin Preis mit zwei Dezimalstellen, 1 bis 1000, sofern keine Grenzen angegeben sind.
$randomCurrencyCodekeineEUR
$randomCurrencyNamekeineEuro
$randomCurrencySymbolkeine€
$randomBankAccountkeineEine 8-stellige Kontonummer.
$randomBankAccountNamekeineSavings Account
$randomBankAccountIbankeineEine IBAN mit gültigen Prüfziffern.
$randomBankAccountBickeineEin BIC (SWIFT-Code).
$randomCreditCardMaskkeineDie letzten vier Ziffern einer Karte.
$randomTransactionTypekeinedeposit, payment, refund…
$randomBitcoinkeineEine erfundene Bitcoin-Adresse.

Shops und Produkte

WertArgumenteWas er liefert
$randomProductkeineChair
$randomProductNamekeineErgonomic Wooden Chair
$randomProductAdjectivekeineErgonomic
$randomProductMaterialkeineWooden
$randomDepartmentkeineGarden

Datumswerte

WertArgumenteWas er liefert
$randomDatePastkeineEin Zeitpunkt im vergangenen Jahr, ISO 8601.
$randomDateFuturekeineEin Zeitpunkt im nächsten Jahr, ISO 8601.
$randomDateRecentkeineEin Zeitpunkt in den letzten zwei Tagen, ISO 8601.
$randomDatekeineEin Tag im vergangenen Jahr: 2026-03-14.
$randomWeekdaykeineTuesday
$randomMonthkeineMarch

Wörter

WertArgumenteWas er liefert
$randomWordkeineEin Wort.
$randomWordsAnzahlEin paar Wörter, 3, sofern keine Anzahl angegeben ist.
$randomNounkeinerouter
$randomVerbkeinecompile
$randomIngverbkeinecompiling
$randomAdjectivekeinewireless
$randomPhrasekeineEine kurze Wendung aus den obigen Wörtern.

Lorem ipsum

WertArgumenteWas er liefert
$randomLoremWordkeinedolor
$randomLoremWordsAnzahlLorem-Wörter, 3, sofern keine Anzahl angegeben ist.
$randomLoremSentencekeineEin Satz.
$randomLoremSentencesAnzahlEin paar Sätze, 2 bis 6, sofern keine Anzahl angegeben ist.
$randomLoremParagraphkeineEin Absatz.
$randomLoremParagraphsAnzahlAbsätze, 3, sofern keine Anzahl angegeben ist.
$randomLoremTextkeineEin Satz oder ein paar.
$randomLoremSlugkeinedolor-sit-amet
$randomLoremLineskeineEin paar Sätze, einer pro Zeile.

Dateien

WertArgumenteWas er liefert
$randomFileNamekeinerouter_matrix.pdf
$randomFileTypekeineimage, text, video…
$randomFileExtkeinepdf
$randomCommonFileNamekeineEin Dateiname mit gängiger Endung.
$randomCommonFileTypekeineimage, video, text…
$randomCommonFileExtkeinepng
$randomFilePathkeine/var/reports/router_matrix.pdf
$randomDirectoryPathkeine/var/reports
$randomMimeTypekeineapplication/pdf

Bilder

WertArgumenteWas er liefert
$randomAvatarImagekeineDie Adresse eines Avatarbilds.
$randomImageUrlkeineDie Adresse eines Bilds mit 640×480.
$randomAbstractImagekeineDie Adresse eines Bilds mit 640×480 zum Thema „abstract“. Die anderen Themen: $randomAnimalsImage, $randomBusinessImage, $randomCatsImage, $randomCityImage, $randomFoodImage, $randomNightlifeImage, $randomFashionImage, $randomPeopleImage, $randomNatureImage, $randomSportsImage, $randomTransportImage.
$randomImageDataUrikeineEin kleines SVG-Bild als data:-URI.

Datenbanken

WertArgumenteWas er liefert
$randomDatabaseColumnkeinecreatedAt
$randomDatabaseTypekeinevarchar
$randomDatabaseCollationkeineutf8mb4_unicode_ci
$randomDatabaseEnginekeineInnoDB

Text

WertArgumenteWas er liefert
$lowercaseTextDen Text in Kleinbuchstaben. {{$lowercase(email)}}
$uppercaseTextDen Text in Großbuchstaben. {{$uppercase(productId)}}
$trimTextDen Text ohne Leerzeichen und Zeilenumbrüche an beiden Enden. {{$trim($responseBody('auth/who-am-i'))}}

Dateien und System

WertArgumenteWas er liefert
$filePfadDen Inhalt einer Datei: ein Pfad relativ zum Arbeitsbereich oder ein absoluter. {{$file('fixtures/order.json')}}
$envNameEine Umgebungsvariable des Echolot-Prozesses. {{$env('HOME')}}

Dynamische Werte und Agenten

Sendet ein KI-Agent eine Anfrage (über den MCP-Server von Echolot oder den Assistenten), liefert $env nichts, und $file liest nur Dateien innerhalb des Arbeitsbereichs. Geheime Werte erreichen den Agenten nie. Siehe Agenten.

Auf dieser Seite