Postman에서 옮겨 오기
Postman 컬렉션과 환경을 가져오고, 무엇이 무엇에 대응하는지 알아보고, 실행하고, Postman으로 다시 내보냅니다.
Echolot은 Postman 컬렉션과 환경을 스크립트까지 포함하여 그대로 읽습니다. 이 튜토리얼에서는 컬렉션을 가져오고, 각 부분이 어디로 갔는지 확인하고, 실행한 다음, 작업 공간을 Postman으로 다시 내보냅니다.
- 소요 시간: 15분.
- 필요한 것: JSON으로 내보낸 Postman 컬렉션(v2.0 또는 v2.1)과 환경. 컬렉션이 없으면 1단계에서 Alpenglow로 만들 수 있습니다.
- 배우는 내용: 가져오기, 대응 관계, 가져온 스크립트 신뢰, 가져오거나 가져오지 않고 컬렉션 실행, 내보내기.
1. 컬렉션 준비하기
Postman에서: 컬렉션의 ⋯ 메뉴를 열고 Export를 선택한 다음 Collection v2.1을 그대로 둡니다. 환경도 각각의 메뉴에서 같은 방식으로 내보냅니다.
Alpenglow로 연습하려면 다음과 같이 합니다.
- Alpenglow 작업 공간을 열고 파일 › 작업 공간 내보내기…(⇧⌘E)를 선택합니다.
- Postman Collection v2.1을 선택합니다. 이 행에 요청 29개 중 21개가 맞는다고 표시됩니다. Postman 컬렉션에는 WebSocket, Socket.IO, MQTT, gRPC, MCP 요청이 없으므로 그 요청들은 남습니다.
- 환경 포함(3)을 켜 두고 내보내기…를 선택합니다. 환경을 포함하면 내보내기 결과가 파일 폴더가 됩니다. 이름을 지정하고 내보내기를 선택합니다.
폴더에는 Alpenglow.postman_collection.json과 환경마다 .postman_environment.json 하나가 들어 있습니다. 보고서에는 제외됨과 내보내면서 변경됨이 나열됩니다.
Echolot의 검사는 pm.test() 스크립트가 되었고, 응답 캡처는 내보내지 않으며, 비밀 변수는 값 없이 이름만 내보냅니다.
2. 가져오기
-
새 작업 공간을 만듭니다. 파일 › 새로운 작업 공간…(⌥⌘N), 이름은
From Postman입니다. -
파일 › 가져오기…(⇧⌘I)를 선택합니다. 컬렉션과 환경 파일을 함께 선택하고 가져오기를 선택합니다.
파일을 윈도우로 드래그하거나, 컬렉션의 JSON을 복사하여 사이드바에 붙여넣을 수도 있습니다(⌘V).
-
보고서(…를 가져옴)에 파일마다 형식(Postman collection v2.1, Postman environment)과 가져온 내용이 나열됩니다. 메모에는 그대로 가져올 수 없었던 항목이 나옵니다.
Alpenglow에서 내보낸 경우 메모에는 테스트 스크립트 19개를 가져왔으며 신뢰하면 실행된다는 내용과, 비밀 값 2개가 작업 공간 파일이 아닌 키체인에 저장되었다는 내용이 나옵니다.
컬렉션에 입력되어 있던 데모 암호와 OAuth 클라이언트 시크릿입니다. 요청은 이제 이를 {{password}}와 {{orders_with_oauth_2_clientSecret}}로 참조합니다.
사이드바에서 보기를 선택합니다.
3. 구조 파악하기
| Postman | Echolot |
|---|---|
| Collection | 컬렉션 이름을 딴 폴더. 변수, 인증, 스크립트는 폴더의 폴더 설정…에 있습니다 |
| Folder | 폴더. 설명은 문서에 있고 자체 변수, 인증, 스크립트가 있습니다 |
| Request | 별도 파일로 저장되는 요청. raw 본문은 유형을 유지하고, urlencoded는 URL 인코딩, form-data는 멀티파트가 되며, GraphQL 본문은 GraphQL 요청이 됩니다 |
| Environment | 환경 페이지(⌥⌘E)의 환경. secret 유형의 값은 키체인으로 갑니다 |
| Collection variables | 컬렉션 폴더의 변수. 폴더의 모든 요청에 적용되며 환경의 변수보다 우선합니다 |
| Pre-request Script, Tests | 요청, 폴더, 작업 공간의 스크립트 탭에 있는 사전 요청 및 테스트 스크립트 |
pm.* | 같은 API: pm.test, pm.expect, pm.response, pm.request, pm.environment, pm.variables, pm.collectionVariables, pm.globals, pm.iterationData, pm.sendRequest, pm.cookies, pm.setNextRequest, pm.visualizer, 그리고 이전 방식의 postman.*와 tests[…] |
require() | lodash, ajv, tv4, crypto-js, uuid, atob, btoa |
| Auth | 같은 유형: Basic, Digest, Bearer 토큰, API 키, OAuth 1.0, OAuth 2.0(주소에 토큰, 갱신 URL, 추가 매개변수 같은 고급 설정 포함), AWS 서명, JWT Bearer, Hawk, Akamai EdgeGrid, NTLM. ASAP(Atlassian)은 같은 방식으로 설정된 JWT Bearer가 됩니다. OAuth 2.0 클라이언트 자격 증명과 암호 자격 증명은 그대로 유지되고, implicit는 PKCE를 쓰는 인증 코드가 되며, 가져오기 보고서에 그렇게 표시됩니다 |
{{$guid}}, {{$timestamp}}, {{$randomInt}}, {{$randomFirstName}} 및 다른 $random… 값 | 이름이 같은 동적 값. 가짜 데이터도 포함되며 훨씬 더 많습니다 |
| Collection Runner, Newman | 실행과 echolot run |
| Mock servers | Mac의 모의 서버: 예시와 가짜 데이터가 있는 경로 또는 OpenAPI 명세 |
| Monitors | 일정에 따른 플로 또는 CI의 echolot run |
form-data의 파일 본문과 파일 필드는 파일이 다른 컴퓨터에 있으므로 가져오지 못합니다. 보고서가 각각의 이름을 알려 주므로 본문 탭에서 파일을 다시 선택할 수 있습니다.
4. 스크립트 신뢰하기
스크립트는 스크립트가 할 수 있는 모든 일을 할 수 있으므로, 가져온 스크립트는 사용자가 승인하기 전에는 실행되지 않습니다.
- Catalog › List products처럼 테스트 스크립트가 있는 요청과 그 스크립트 탭을 엽니다. 배너에 Echolot 외부에서 온 스크립트입니다라고 표시됩니다.
- 스크립트를 읽고 스크립트 신뢰를 선택합니다. 먼저 보내면 Echolot이 묻고, 신뢰하고 보내기는 신뢰와 전송을 한 번에 합니다.
- 보냅니다. 스크립트의
pm.test()결과가 응답의 테스트 탭에서 스크립트 아래에 나타납니다.
스크립트는 Node가 아니라 Echolot 자체의 JavaScript 샌드박스에서 실행됩니다. 스크립트와 테스트와 스크립팅 API를 참고하십시오.
5. 실행하기
- 페이지 헤더에서 Staging 같은 가져온 환경을 선택합니다. Alpenglow의 데모 API라면 환경 없음을 선택합니다.
- 컬렉션의 폴더를 오른쪽 클릭하고 폴더 실행을 선택합니다. 실행이 모든 요청을 스크립트와 검사와 함께 실행합니다.
명령줄 도구는 Newman처럼 가져오지 않고 컬렉션을 실행합니다. 스크립트는 묻지 않고 실행됩니다.
echolot run Alpenglow.postman_collection.json --folder catalog --reporter console --reporter junit --out results.xml--env-file은 Postman 환경 파일을 받고, --folder는 하이픈으로 연결한 소문자 폴더 이름(catalog, agent-tools)을 받으며, --data users.csv는 행마다
한 번씩 실행합니다. 비밀 값은 ECHOLOT_SECRET_<NAME> 환경 변수에서 가져옵니다.
6. 다르게 작동하는 부분
- 모든 것이 파일입니다. 작업 공간은 요청마다 하나씩 TOML 파일이 든 폴더이며 Git에 바로 쓸 수 있습니다. 계정도 동기화 서비스도 없으며, 팀은 Git으로 공유합니다. Git과 팀을 참고하십시오.
- 저장은 자동입니다. ⌘S가 없으며, 사이드바 아래쪽에 모두 저장됨이라고 표시됩니다.
- 비밀 값은 파일에 들어가지 않습니다. 비밀 변수의 값은 이 Mac의 키체인에 있고 파일에는 이름만 들어갑니다.
- 코드 없는 검사. 테스트 탭은 상태, 헤더, JSON 값, 시간, JSON Schema, OpenAPI 명세를 스크립트 없이 검사합니다. 스크립트와 테스트를 참고하십시오.
- 코드 없는 캡처. 테스트 스크립트에
pm.environment.set("token", …)를 쓰는 대신, 응답에서 값에 포인터를 올리고 변수에 저장…을 선택합니다. 요청 연결하기를 참고하십시오. - HTTP 이상. 같은 작업 공간에 WebSocket, Socket.IO, MQTT, gRPC, MCP 요청과 명세, 모의 서버, 플로가 함께 들어 있습니다.
7. Postman으로 다시 내보내기
- 파일 › 작업 공간 내보내기…를 선택하거나, 폴더를 오른쪽 클릭하고 폴더 내보내기…를 선택합니다.
- Postman Collection v2.1을 선택합니다. 시트에 몇 개의 요청이 맞는지 표시되며, WebSocket과 다른 세션 종류는 남습니다. Insomnia v5는 WebSocket,
Socket.IO, gRPC도 담을 수 있고, Bruno 컬렉션은
.bru파일이 든 폴더를 만듭니다. - 환경 포함 여부를 선택하고 내보내기…를 선택합니다.
인증이나 헤더 필드에 입력한 자격 증명은 평문으로 기록되며, 보고서에 몇 개인지 표시됩니다. 먼저 비밀 변수로 옮기십시오. 비밀 변수는 값 없이 이름만 내보냅니다. 내보내기를 참고하십시오.
다음 단계
- 첫 번째 작업 공간: 작업 공간의 구성.
- 가져오기: Insomnia, OpenAPI, HAR, cURL, Paw, Bruno도 가져옵니다.
- API를 테스트하고 CI에서 실행하기: 파이프라인에서 Newman을 대체합니다.