Echolot
레퍼런스

동적 값

Echolot의 모든 동적 값을 인수와 예시와 함께, `{{` 목록이 묶는 그룹별로 정리했습니다.

동적 값은 {{ }} 안에 쓰는 함수입니다. {{$uuid}}, {{$base64('heidi:alpenglow')}}, {{$responseJSONPath('auth/sign-in', '$.access_token')}} 같은 것입니다. Echolot은 요청을 보낼 때 값을 계산합니다. 동적 값은 변수를 쓸 수 있는 모든 곳에서 동작합니다. URL, 헤더, 본문, 인증 필드, 메시지, 설정입니다. 앱에서 동적 값을 고르고 편집하는 방법은 동적 값을 참고하세요.

작성 방법

  • 동적 값은 $로 시작합니다. {{$timestamp}}처럼 씁니다. 인수가 없으면 괄호는 생략해도 됩니다.
  • 인수는 괄호 안에 쉼표로 구분해 씁니다. 따옴표로 묶은 텍스트('…' 또는 "…"), 숫자, 따옴표 없는 변수 이름, 또는 다른 동적 값을 쓸 수 있습니다.
  • 텍스트 인수에는 자체 토큰을 넣을 수 있습니다. {{$base64('{{email}}:{{password}}')}}. 따옴표 안의 }}는 토큰을 끝내지 않습니다.
  • 구문 분석할 수 없는 것은 작성한 그대로 남고 보고되므로, 잘못 입력한 {{가 요청을 깨뜨리는 일은 없습니다.
{{$sha256('{{body}}', 'base64')}}
{{$date('yyyy-MM-dd', -86400, 'Europe/Zurich')}}
{{$hmacSha256(apiSecret, $timestamp)}}

응답

이 값들은 저장된 다른 요청의 최근 응답을 읽으며, 요청은 경로(auth/sign-in처럼 folder/request)로 지정합니다. 모든 값은 선택 사항인 마지막 인수를 받으며, 이 인수는 그 요청을 먼저 보낼지를 정합니다.

마지막 인수의미
'if-missing'(기본값)응답이 아직 없으면 먼저 보냅니다.
'fresh'매번 먼저 보냅니다. 실행에서는 실행당 한 번입니다.
'latest'보내지 않고 최근 응답을 사용합니다.
값인수결과
$responseJSONPath요청, JSONPathJSONPath로 고른 응답 본문의 값. {{$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요청, 쿠키응답이 설정한 쿠키의 값. {{$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요청, JSONPathJSON 본문의 값. {{$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')}}
$base64DecodeBase64Base64 또는 Base64URL을 텍스트로 디코딩. {{$base64Decode('aGVpZGk=')}}
$base64Url텍스트텍스트를 패딩 없는 Base64URL로. {{$base64Url('{"alg":"none"}')}}
$urlEncode텍스트URL 구성 요소용으로 퍼센트 인코딩한 텍스트. {{$urlEncode('ultralight tent')}}
$urlDecode텍스트퍼센트 인코딩된 텍스트를 디코딩. +는 +로 남습니다. {{$urlDecode('ultralight%20tent')}}
$hex텍스트텍스트의 UTF-8 바이트를 16진수로. {{$hex('Grüezi')}}
$hexDecode16진수16진수를 텍스트로 디코딩. {{$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. HS384 또는 HS512를 고르지 않으면 HS256. {{$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없음Date나 If-Modified-Since용 HTTP 날짜: 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진수로 표현한 무작위 바이트. 지정하지 않으면 16(최대 2048). 자릿수는 두 배입니다. {{$randomHex(8)}}

Alpenglow의 Create order는 Idempotency-Key: {{$uuid}}를 보내므로, 주문할 때마다 새 주문이 됩니다.

가짜 데이터

요청 본문, 테스트 데이터, 모의 서버 경로에 사용하는 만든 값입니다. 이름, 주소, 회사, 가격, 날짜, lorem ipsum 등이 있으며 보낼 때마다 새로 만들어집니다. 이름은 Postman의 동적 변수와 같으므로, 이를 사용하는 컬렉션은 여기서도 실제 값을 보냅니다. {{ 목록에서는 가짜 데이터 아래에 그룹별로 있습니다.

인수는 선택 사항이며 숫자는 -10^15부터 10^15까지입니다. 모의 서버 본문에서는 무작위와 시간의 $uuid($randomUUID로), $randomInt, $randomString, $randomHex, $timestamp, $timestampMs, $isoTimestamp도 사용할 수 있습니다. 터미널에서는 echolot fake가 이 값들로 템플릿을 채웁니다.

일반

값인수결과
$randomFloat최솟값, 최댓값, 소수 자릿수범위(0~1000) 안의 소수. 따로 지정하지 않으면 소수 둘째 자리까지.
$randomDigits길이무작위 숫자 문자열. 길이를 지정하지 않으면 6자리.
$randomBoolean없음true 또는 false.
$randomElement선택지인수 중 무작위로 고른 하나: $randomElement(active, paused, closed).
$randomAlphaNumeric없음영문자 또는 숫자 하나.
$randomColor없음색 이름: teal.
$randomHexColor없음16진수 색: #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없음지난 1년 안의 시점(ISO 8601).
$randomDateFuture없음앞으로 1년 안의 시점(ISO 8601).
$randomDateRecent없음지난 이틀 안의 시점(ISO 8601).
$randomDate없음지난 1년 안의 날짜: 2026-03-14.
$randomWeekday없음Tuesday
$randomMonth없음March

단어

값인수결과
$randomWord없음단어 하나.
$randomWords개수몇 개의 단어. 개수를 지정하지 않으면 3개.
$randomNoun없음router
$randomVerb없음compile
$randomIngverb없음compiling
$randomAdjective없음wireless
$randomPhrase없음위의 단어들로 만든 짧은 구.

Lorem ipsum

값인수결과
$randomLoremWord없음dolor
$randomLoremWords개수Lorem 단어. 개수를 지정하지 않으면 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은 작업 공간 안의 파일만 읽습니다. 비밀 값은 에이전트에 전달되지 않습니다. 에이전트를 참고하세요.

이 페이지에서