Echolot
参考

动态值

Echolot 提供的全部动态值,附带参数和示例,分组方式与输入两个左花括号后出现的建议列表相同。

动态值是 {{ }} 中的一个函数:{{$uuid}}、{{$base64('heidi:alpenglow')}}、{{$responseJSONPath('auth/sign-in', '$.access_token')}}。Echolot 会在发送请求时计算它。动态值可用于变量能用的任何地方:URL、标头、正文、认证字段、消息和设置。关于如何在 App 中选取和编辑它们,参见动态值。

书写方式

  • 动态值以 $ 开头:{{$timestamp}}。没有参数时,括号可以省略。
  • 参数放在括号中,用逗号分隔:加引号的文本('…' 或 "…")、数字、不加引号的变量名,或其他动态值。
  • 文本参数本身可以包含标记:{{$base64('{{email}}:{{password}}')}}。引号内的 }} 不会结束该标记。
  • 无法解析的内容会保持你写的样子并被报告,因此多余的 {{ 绝不会破坏请求。
{{$sha256('{{body}}', 'base64')}}
{{$date('yyyy-MM-dd', -86400, 'Europe/Zurich')}}
{{$hmacSha256(apiSecret, $timestamp)}}

响应

这些值读取另一个已存储请求的最新响应,该请求用其路径指定(folder/request,如 auth/sign-in)。每个值都接受一个可选的最后参数,说明是否先发送那个请求:

最后一个参数含义
'if-missing'(默认)当它还没有响应时先发送。
'fresh'每次都先发送;在一次运行中只发送一次。
'latest'从不发送;使用最新的响应。
值参数返回什么
$responseJSONPath请求、JSONPath响应正文中用 JSONPath 选出的值。{{$responseJSONPath('auth/sign-in', '$.access_token')}}
$responseKeyPath请求、键路径用 data.items.0.id 这样的键路径选出的值。{{$responseKeyPath('orders/list-orders', 'items.0.id')}}
$responseJq请求、jq 过滤器jq 过滤器对正文的处理结果;有多个结果时每行一个。{{$responseJq('catalog/list-products', '.items[0].sku')}}
$responseXPath请求、XPathXML 响应中的值。{{$responseXPath('echo/xml', '/catalog/product[1]/@sku')}}
$responseRegex请求、模式正文中正则表达式的第一个匹配:如果有分组,则为第一个分组。{{$responseRegex('echo/html', '<title>(\\w+)</title>')}}
$responseHeader请求、标头一个响应标头。{{$responseHeader('orders/create-order', 'Location')}}
$responseCookie请求、Cookie响应所设置的某个 Cookie 的值。{{$responseCookie('echo/set-cookie', 'flavour')}}
$responseStatus请求状态码。{{$responseStatus('auth/sign-in')}}
$responseBody请求整个正文,作为文本。{{$responseBody('auth/who-am-i')}}
$responseBodyLength请求正文的大小,以字节计。{{$responseBodyLength('catalog/export')}}
$response请求、查询以上任一项,由查询的形式决定:JSONPath($.token)、XPath(/a/b,或 xpath:…)、regex:…、jq:…、keypath:…、header:Name 或 cookie:Name。{{$response('auth/sign-in', 'header:Content-Type')}}

例如,Who am I 可以直接从 Sign in 取得令牌,必要时先发送它:

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

如果请求循环读取彼此的响应,会被拒绝,并指出构成循环的请求。响应捕获是在请求之间传递值的另一种方式。

请求

这些值读取一个请求在发送时的样子,即已解析的结果。第一个参数是已存储请求的路径,或者为空('')表示正在发送的请求。

值参数返回什么
$requestURL请求它的 URL,已解析。{{$requestURL('')}}
$requestMethod请求它的方法。{{$requestMethod('')}}
$requestHeader请求、标头一个标头,已解析,包括其认证添加的内容。{{$requestHeader('', 'Content-Type')}}
$requestQuery请求、参数其 URL 的一个查询参数,已解码。{{$requestQuery('', 'page')}}
$requestBody请求它的正文,已解析,作为文本。{{$requestBody('')}}
$requestJSONPath请求、JSONPath其 JSON 正文中的值。{{$requestJSONPath('orders/create-order', '$.lines[0].sku')}}
$requestJq请求、jq 过滤器jq 过滤器对其 JSON 正文的处理结果。{{$requestJq('', '.lines[0].quantity')}}
$requestVariable请求、变量该请求所看到的某个变量。{{$requestVariable('auth/sign-in', 'email')}}

常见的用法是用请求发送的内容给请求签名:

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

编码

值参数返回什么
$base64文本文本的 Base64 编码。{{$base64('heidi:alpenglow')}}
$base64DecodeBase64将 Base64 或 Base64URL 解码为文本。{{$base64Decode('aGVpZGk=')}}
$base64Url文本文本的 Base64URL 编码,不带填充。{{$base64Url('{"alg":"none"}')}}
$urlEncode文本文本经百分号编码,可用于 URL 组成部分。{{$urlEncode('ultralight tent')}}
$urlDecode文本将百分号编码的文本解码;+ 保持为 +。{{$urlDecode('ultralight%20tent')}}
$hex文本文本的 UTF-8 字节,十六进制。{{$hex('Grüezi')}}
$hexDecode十六进制将十六进制解码为文本。{{$hexDecode('6869')}}
$jsonEscape文本转义后可放入 JSON 字符串的文本,不含引号。{{$jsonEscape(note)}}
$newline无一个换行符(\n)。
$cr无一个回车符(\r)。
$crlf无一个回车符加换行符(\r\n)。
$tab无一个制表符。
$unescape序列将转义序列转换为字符的文本:\n、\r、\t、\0、\\、\xHH、\uHHHH。{{$unescape('café')}}
$basicAuth用户、密码HTTP Basic 的 Authorization 值:Basic 加 user:password 的 Base64。{{$basicAuth(email, password)}}
$jwt载荷、密钥、算法(可选)以密钥签名的 JSON 载荷的 JWT:默认为 HS256,也可选 HS384 或 HS512。{{$jwt('{"sub": "heidi"}', jwtSecret)}}

哈希和签名

每个哈希接受文本,以及可选的输出格式:'hex'(默认)、'base64' 或 'base64url'。每个 HMAC 接受密钥、消息,以及可选的输出格式。

值参数返回什么
$md5文本、输出文本的 MD5。{{$md5('alpenglow')}}
$sha1文本、输出SHA-1。{{$sha1('alpenglow')}}
$sha224文本、输出SHA-224。
$sha256文本、输出SHA-256。{{$sha256($requestBody(''), 'base64')}}
$sha384文本、输出SHA-384。
$sha512文本、输出SHA-512。
$hmacMd5密钥、消息、输出以密钥计算的消息的 HMAC-MD5。
$hmacSha1密钥、消息、输出HMAC-SHA1。
$hmacSha224密钥、消息、输出HMAC-SHA224。
$hmacSha256密钥、消息、输出HMAC-SHA256。{{$hmacSha256(apiSecret, $timestamp)}}
$hmacSha384密钥、消息、输出HMAC-SHA384。
$hmacSha512密钥、消息、输出HMAC-SHA512。

时间

这些值都取发送请求的那一刻。

值参数返回什么
$timestamp无以秒计的 Unix 时间:1793525000。
$timestampMs无以毫秒计的 Unix 时间:1793525000123。
$isoTimestamp无UTC 的 ISO 8601 格式,含毫秒:2026-11-01T09:30:00.123Z。
$httpDate无HTTP 日期,用于 Date 或 If-Modified-Since:Sun, 01 Nov 2026 09:30:00 GMT。
$date格式、偏移秒数(可选)、时区(可选)按 Unicode 日期模式格式化的时间,按偏移量平移,位于指定时区(未指定则为 UTC)。{{$date('yyyy-MM-dd')}}、{{$date('yyyy-MM-dd HH:mm', 3600, 'Europe/Zurich')}}

随机

每次发送都会生成新值。

值参数返回什么
$uuid无一个小写的随机 UUID。也可用 $guid 和 $randomUUID。{{$uuid}}
$randomInt最小值、最大值两者之间的整数,包含两端。只给一个参数时它是最大值,从 0 起;不给参数则为 0 到 1000。{{$randomInt(1, 5)}}
$randomString长度、字符(可选)随机字符,未指定时为 16 个(最多 4096 个):字母和数字,或指定的字符。{{$randomString(8, 'ABCDEF0123456789')}}
$randomHex字节数十六进制的随机字节,未指定时为 16 个(最多 2048 个);数字个数是字节数的两倍。{{$randomHex(8)}}

Alpenglow 的 Create order 发送 Idempotency-Key: {{$uuid}},因此它下的每一笔订单都是新的。

示例数据

为请求正文、测试数据和模拟路由生成的虚构值:姓名、地址、公司、价格、日期、乱数假文等,每次发送都不同。这些名称就是 Postman 的动态变量,因此使用它们的集合在这里会发送真实的值。在 {{ 列表中,它们位于示例数据下,按分组排列。

参数都是可选的;数字范围为 -10^15 到 10^15。模拟服务器的正文还可以使用随机和时间中的 $uuid(即 $randomUUID)、$randomInt、$randomString、$randomHex、$timestamp、$timestampMs 和 $isoTimestamp。在“终端”中,echolot fake 用它们填充模板。

常用

值参数返回什么
$randomFloat最小值、最大值、小数位数上下限之间(0 到 1000)的小数,除非另行指定,保留 2 位小数。
$randomDigits长度随机数字组成的字符串,除非指定长度,否则为 6 位。
$randomBoolean无true 或 false。
$randomElement选项随机选出的一个参数:$randomElement(active, paused, closed)。
$randomAlphaNumeric无一个字母或数字。
$randomColor无颜色名称:teal。
$randomHexColor无十六进制颜色:#3f8acb。
$randomAbbreviation无技术缩写:SQL。

姓名和职业

值参数返回什么
$randomFirstName无名字:Amelia。
$randomLastName无姓氏:Okafor。
$randomFullName无名字加姓氏:Amelia Okafor。
$randomNamePrefix无Mr.、Ms.、Dr.…
$randomNameSuffix无Jr.、PhD…
$randomJobArea无Mobility、Security…
$randomJobDescriptor无Lead、Senior…
$randomJobTitle无Senior Security Engineer。
$randomJobType无Engineer、Designer…

互联网

值参数返回什么
$randomEmail无电子邮件地址:amelia.okafor@gmail.com。
$randomExampleEmail无example.com、example.net 或 example.org 的电子邮件地址。
$randomUserName无用户名:amelia_okafor42。
$randomPassword无15 个随机字母和数字。
$randomUrl无https://northwind.io
$randomDomainName无northwind.io
$randomDomainSuffix无com、io、dev…
$randomDomainWord无northwind
$randomIP无IPv4 地址:192.168.14.7。
$randomIPV6无IPv6 地址。
$randomMACAddress无MAC 地址:3a:f1:0c:5e:92:b4。
$randomProtocol无http 或 https。
$randomSemver无语义化版本:2.14.3。
$randomLocale无区域设置:de_CH。
$randomUserAgent无浏览器的 User-Agent。

地址和地点

值参数返回什么
$randomStreetName无Maple Avenue
$randomStreetAddress无42 Maple Avenue
$randomCity无Lisbon
$randomZipCode无五位数字的邮政编码。也可用 $randomZip。
$randomCountry无Portugal
$randomCountryCode无ISO 3166 国家代码:PT。
$randomLatitude无纬度:38.7223。
$randomLongitude无经度:-9.1393。

电话

值参数返回什么
$randomPhoneNumber无电话号码:555-201-4417。
$randomPhoneNumberExt无带国家代码的电话号码:+44 555-201-4417。

公司

值参数返回什么
$randomCompanyName无Northwind Labs
$randomCompanySuffix无Inc、LLC、GmbH…
$randomBs无streamline seamless platforms
$randomBsAdjective无seamless
$randomBsBuzz无streamline
$randomBsNoun无platforms
$randomCatchPhrase无Adaptive real-time framework
$randomCatchPhraseAdjective无Adaptive
$randomCatchPhraseDescriptor无real-time
$randomCatchPhraseNoun无framework

金融

值参数返回什么
$randomPrice最小值、最大值保留两位小数的价格,除非指定上下限,否则为 1 到 1000。
$randomCurrencyCode无EUR
$randomCurrencyName无Euro
$randomCurrencySymbol无€
$randomBankAccount无8 位的账号。
$randomBankAccountName无Savings Account
$randomBankAccountIban无校验位有效的 IBAN。
$randomBankAccountBic无BIC(SWIFT 代码)。
$randomCreditCardMask无银行卡的末四位数字。
$randomTransactionType无deposit、payment、refund…
$randomBitcoin无虚构的比特币地址。

商店和商品

值参数返回什么
$randomProduct无Chair
$randomProductName无Ergonomic Wooden Chair
$randomProductAdjective无Ergonomic
$randomProductMaterial无Wooden
$randomDepartment无Garden

日期

值参数返回什么
$randomDatePast无过去一年中的某个时刻,ISO 8601 格式。
$randomDateFuture无未来一年中的某个时刻,ISO 8601 格式。
$randomDateRecent无过去两天中的某个时刻,ISO 8601 格式。
$randomDate无过去一年中的某一天:2026-03-14。
$randomWeekday无Tuesday
$randomMonth无March

单词

值参数返回什么
$randomWord无一个单词。
$randomWords数量几个单词,除非指定数量,否则为 3 个。
$randomNoun无router
$randomVerb无compile
$randomIngverb无compiling
$randomAdjective无wireless
$randomPhrase无由上述单词组成的短语。

乱数假文

值参数返回什么
$randomLoremWord无dolor
$randomLoremWords数量乱数假文单词,除非指定数量,否则为 3 个。
$randomLoremSentence无一个句子。
$randomLoremSentences数量几个句子,除非指定数量,否则为 2 到 6 个。
$randomLoremParagraph无一个段落。
$randomLoremParagraphs数量若干段落,除非指定数量,否则为 3 个。
$randomLoremText无一个或几个句子。
$randomLoremSlug无dolor-sit-amet
$randomLoremLines无几个句子,每行一个。

文件

值参数返回什么
$randomFileName无router_matrix.pdf
$randomFileType无image、text、video…
$randomFileExt无pdf
$randomCommonFileName无带常见扩展名的文件名。
$randomCommonFileType无image、video、text…
$randomCommonFileExt无png
$randomFilePath无/var/reports/router_matrix.pdf
$randomDirectoryPath无/var/reports
$randomMimeType无application/pdf

图像

值参数返回什么
$randomAvatarImage无头像图片的地址。
$randomImageUrl无一张 640×480 图片的地址。
$randomAbstractImage无主题为 abstract 的 640×480 图片的地址。其他主题:$randomAnimalsImage、$randomBusinessImage、$randomCatsImage、$randomCityImage、$randomFoodImage、$randomNightlifeImage、$randomFashionImage、$randomPeopleImage、$randomNatureImage、$randomSportsImage、$randomTransportImage。
$randomImageDataUri无作为 data: URI 的小型 SVG 图片。

数据库

值参数返回什么
$randomDatabaseColumn无createdAt
$randomDatabaseType无varchar
$randomDatabaseCollation无utf8mb4_unicode_ci
$randomDatabaseEngine无InnoDB

文本

值参数返回什么
$lowercase文本小写的文本。{{$lowercase(email)}}
$uppercase文本大写的文本。{{$uppercase(productId)}}
$trim文本去掉两端空格和换行的文本。{{$trim($responseBody('auth/who-am-i'))}}

文件和系统

值参数返回什么
$file路径文件的内容:相对于工作区的路径,或绝对路径。{{$file('fixtures/order.json')}}
$env名称Echolot 进程的环境变量。{{$env('HOME')}}

动态值和智能体

当 AI 智能体发送请求时(通过 Echolot 的 MCP 服务器或助手),$env 不返回任何内容,$file 只读取工作区内的文件。机密值绝不会到达智能体。参见智能体。

本页内容