API auto test
1. api-auto-test 소개
- api-auto-test를 시작하는 데 도움이 되는 가이드와 튜토리얼을 제공합니다.
- api-auto-test는 API를 보다 빠르게 구축, 테스트 및 문서화할 수 있도록 지원하는 무료 오픈 소스 API 개발 플랫폼입니다. 요청을 전송하고 응답을 하나의 인터페이스에서 확인할 수 있는 웹 기반 API 개발 환경을 제공합니다.
- api-auto-test 사용을 시작하는 데 도움이 되는 다양한 기사, 가이드 및 튜토리얼을 확인할 수 있습니다.

2. 작업 공간
2.1. 작업 공간 만들기
-작업 공간을 생성하려면 작업 공간 전환기의 오른쪽 상단에 있는 ”+” 아이콘을 클릭하세요.

-
또는 “Profile” 페이지의 “Workspaces” 탭에서 “Create new workspace” 버튼을 클릭하여 작업 공간을 만들 수 있습니다.

-
작업 공간을 생성하면 해당 작업 공간의 소유자가 되며, 다른 사용자를 작업 공간에 초대하고 역할을 할당할 수 있습니다.
2.2. 작업 공간에 사용자 초대하기
-
작업 공간에 사용자를 초대하려면 “Invite” 버튼을 클릭하세요.

-
초대할 사용자의 이메일 주소를 입력하세요. 입력 필드에 이메일 주소를 추가하여 여러 사용자를 한 번에 초대할 수 있습니다.

2.3. 작업 공간 간 전환
작업 공간 간 전환을 하려면 앱의 오른쪽 상단 모서리에 있는 작업 공간 전환기를 클릭한 후 전환하려는 작업 공간을 선택하세요.

2.4. 작업 공간 편집하기
작업 공간의 편집은 해당 작업 공간의 소유자만 수행할 수 있습니다.

2.4.1. 작업 공간에서 사용자 제거하기
- 작업 공간에서 사용자를 제거하려면 앱의 오른쪽 상단에 있는 작업 공간 설정 버튼을 클릭하세요.
- 그런 다음 작업 공간에서 제거하려는 사용자의 “Delete” 버튼을 클릭하세요.
2.4.3. 작업 공간 나가기
- 작업 공간을 나가려면 앱의 오른쪽 상단 모서리에 있는 작업 공간 설정 버튼을 클릭한 후 나가려는 작업 공간의“Delete” 버튼을 클릭하세요.
- 작업 공간의 소유자인 경우, 작업 공간을 나가기 위해서는 작업 공간을 삭제하거나, 소유권을 다른 사용자에게 이전한 후 작업 공간을 나갈 수 있습니다.
2.4.4. 구성원 역할 변경하기
작업 공간의 구성원에게는 다음과 같은 세 가지 역할이 있습니다.
- Owner: 업 공간에 대한 전체 접근 권한을 가지며, 다른 사용자를 작업 공간에 초대할 수 있고 작업 공간을 삭제할 수 있습니다.
- Editor: 작업 공간에 대한 편집 권한을 가지며, 컬렉션, 환경 및 요청을 생성, 편집, 삭제할 수 있습니다.
- Viewer: 작업 공간에 대한 읽기 전용 권한을 가지며, 작업 공간의 컬렉션, 환경 및 요청을 조회할 수 있습니다. 구성원의 역할을 변경하려면 앱의 오른쪽 상단 모서리에 있는 작업 공간 설정 버튼을 클릭하세요. 그그런 다음 역할을 변경하려는 사용자의 “Role” 드롭다운을 클릭하고, 할당할 역할을 선택한 후 “Save”을 클릭하세요.
2.4.5. 작업 공간 삭제
작업 공간을 삭제하려면 “Profile” 페이지의 “Workspaces” 섹션에서 삭제하려는 작업 공간을 선택한 후 “Delete” 버튼을 클릭하세요.
3. 컬렉션
3.1. 새 컬렉션 만들기
새 컬렉션을 만들려면 컬렉션 섹션에서 “Add new” 버튼을 클릭한 후 컬렉션 이름을 입력하세요. 또한, 기존 컬렉션에서 “Add new” 버튼을 클릭하여 하위 컬렉션을 생성하고 하위 컬렉션의 이름을 입력할 수도 있습니다.
3.2. 요청을 컬렉션에 저장
컬렉션에 새 요청을 추가하려면 요청 페이지에서 “Save” 버튼을 클릭한 후 추가할 컬렉션을 선택하세요. 저장 버튼 옆의 드롭다운 메뉴를 클릭하고 “Save as”을 클릭하여 요청을 새로운 위치에 저장할 수 있습니다.
키보드 단축키 Ctrl/Cmd + S 를 사용하여 요청을 컬렉션에 저장할 수도 있습니다.
3.3. 컬렉션 정리
컬렉션을 원하는 위치로 드래그 앤 드롭하여 정리할 수 있습니다. 또한, 컬렉션을 다른 컬렉션으로 드래그 앤 드롭하여 하위 컬렉션을 생성할 수도 있습니다.
3.3.1. 컬렉션 편집
컬렉션을 편집하려면 컬렉션 옵션에서 “Edit” 버튼을 클릭하세요.
3.3.2. 요청을 컬렉션에 추가
컬렉션에 요청을 추가하려면, 컬렉션 옵션에서 “New request” 버튼을 클릭하여 현재 요청을 컬렉션에 저장합니다.
3.4. 컬렉션 복제하기
컬렉션을 복제하려면, 컬렉션 옵션에서 “Duplicate” 버튼을 클릭하세요.
3.5. 컬렉션 삭제하기
컬렉션을 삭제하려면, 컬렉션 옵션에서 “Delete” 버튼을 클릭하세요.
3.6. 컬렉션 가져오기 및 내보내기
api-auto-test, OpenAPI 및 Postman 형식의 컬렉션을 가져오거나 내보낼 수 있습니다.
3.6.1. 컬렉션 가져오기
컬렉션을 가져오려면, 컬렉션 섹션에서 “Import” 버튼을 클릭한 후 가져올 컬렉션 유형을 선택하세요.
3.6.2. 컬렉션 내보내기
컬렉션을 내보내려면, 컬렉션 옵션에서 “Export” 버튼을 클릭한 후 내보낼 컬렉션 유형을 선택하세요.
3.7. 컬렉션 속성
컬렉션 속성을 사용하면 컬렉션 내 모든 요청에 보편적으로 적용되는 설정을 정의할 수 있습니다.
인증 세부정보 및 헤더는 컬렉션 수준에서 지정할 수 있습니다. 컬렉션 내 하위 폴더 및 개별 요청은 이러한 속성을 상속받거나 사용자 정의 인증 및 헤더를 별도로 정의할 수 있습니다.
컬렉션 속성을 설정하려면 다음 단계를 따르세요.
- 컬렉션 또는 컬렉션 내 하위 폴더를 마우스 오른쪽 버튼으로 클릭하여 속성을 여세요.
- 모든 중첩 요청 또는 폴더에 적용할 인증 정보 및 헤더를 지정하세요.
- 하위 폴더가 상위 컬렉션의 속성을 상속받아야 하는 경우, 인증을 “inherit”로 지정하고 헤더는 비워 두세요.
4. 변수
4.1. 변수 범위
api-auto-test는 다양한 변수 범위를 제공하여, 서로 다른 컨텍스트에 따라 적절한 범위를 사용할 수 있도록 합니다.
- Global Variables:는 api-auto-test 전역에서 접근할 수 있으며 모든 변수 중에서 가장 넓은 범위를 가집니다.
- Environment Variables:은 변수의 범위를 특정 환경에 맞게 설정할 수 있습니다. 프로덕션과 스테이징과 같이 서로 다른 환경에서 동일한 변수 집합을 사용할 때 유용합니다.
- Request Variables:개별 요청에만 적용되는 변수입니다. URL 경로에서 변수를 사용하거나 동적인 URL을 구성할 때 유용합니다.
- Predefined Variables: 런타임에 자동으로 생성되는 변수로, $ 기호를 사용하여 api-auto-test 전역에서 접근할 수 있습니다. 예: $guid, $timestamp
각 변수의 범위는 변수 이름의 색상으로 구분할 수 있습니다.
| Variable Scope | Color |
|---|---|
| Global | Blue |
| Environment | Green |
| Request | Orange |
| Predefined | Yellow |
| Non resolvable | Red |
4.2. 변수의 종류
-
A regular variable: 사용자가 api-auto-test 전반에서 변수를 참조할 수 있도록 합니다. 모든 사용자가 변수 값에 접근할 수 있으며, 공유 작업 공간에서는 일반 환경 변수–값 쌍이 서버와 동기화되어 모든 구성원이 사용할 수 있습니다. 단, 개인 작업 공간에서는 변수 값 동기화 여부를 선택할 수 있습니다.
-
A secret variable: 사용자가 비밀 값을 변수로 참조할 수 있도록 합니다. 비밀 변수 값은 서버로 동기화되거나 작업 공간 구성원과 공유되지 않습니다. 협업 작업 공간에서는 사용자가 런타임에 해당 값을 직접 입력하는 것을 전제로 합니다. api-auto-test의 모든 비밀 변수 값은 별표(***)로 마스킹됩니다. 비밀 변수는 Request 범위를 가질 수 없으며, Environment 또는 Global 범위에서만 사용할 수 있습니다. 비밀 변수 값은 환경을 내보낼 때(export) 포함되지 않습니다.
-
A predefined variable: 런타임에 자동으로 생성되며, 동적이고 상황에 맞는 데이터를 제공합니다. 요청 및 응답 전반에서 사용 가능하며, 수동 구성 없이 시스템 정보나 동적인 값을 API 상호작용에 포함할 수 있습니다. 모든 미리 정의된 변수는 $ 기호를 사용하여 api-auto-test 전반에서 접근할 수 있습니다. 아래는 요청 또는 컬렉션 실행 중 동적으로 생성되는 미리 정의된 변수 목록입니다.
Variable Name Description Example: guidA v4 style unique (GUID) identifier for each request.123e4567-e89b-12d3-a456-426614174000
timestampThe current UNIX timestamp in seconds 1693047645isoTimestampThe current date and time in ISO-8601 format at zero UTC (also known as “Zulu time” or UTC-0)2024-09-25T00:00:00.000Z
randomUUIDA random 36-character UUID.6929bb52-3ab2-448a-9796-d6480ecad36b
Numbers, Text, and Colors| Variable Name | Description | Example |
|---|---|---|
| $randomAlphaNumeric | 무작위 알파-숫자 문자 | A9X1Z3 |
| $randomBoolean | 무작위 불리언 값 | true , false |
| $randomInt | 0–1000 사이의 무작위 정수 | 29 , 432 , 786 |
| $randomColor | red, green, blue, yellow, purple, and orange 등 지정된 색상 중 임의 선택 | yellow |
| $randomHexColor | 무작위 HEX 색상 값 | #f2a729 |
| $randomAbbreviation | 무작위 약어 | SQL , JSON , HTML |
| Variable Name | Description | Example |
|---|---|---|
| $randomIP | 무작위 IPv4 주소 | 192.168.0.101 |
| $randomIPV6 | 무작위 IPv6 주소 | 2001:0db8:85a3:0000:0000:8a2e:0370:7334 |
| $randomMACAddress | 무작위 MAC 주소 | 00:1B:44:11:3A:B7 |
| $randomPassword | 무작위 15자 알파‑숫자 비밀번호 | H8w72Sx93KlqA1b |
| $randomLocale | ISO 639‑1 형식의 무작위 언어 코드 | en, fr, es |
| $randomUserAgent | 무작위 사용자 에이전트 | Mozilla/5.0 (Windows NT 10.0; Win64) |
| $randomProtocol | 무작위 인터넷 프로토콜 | https, ftp |
| $randomSemver | 무작위 의미론적 버전 | 1.2.3 |
| Variable Name | Description | Example |
|---|---|---|
| $randomFirstName | 무작위 이름 | Ethan , Chandler , John |
| $randomLastName | 무작위 성 | Schaden , Schneider , Doe |
| $randomFullName | 무작위 전체 이름 | Ethan Schaden , Chandler Schneider , John Doe |
| $randomNamePrefix | 무작위 이름 접두사 | Dr. , Miss. , Prof. |
| $randomNameSuffix | 무작위 이름 접미사 | MD , PhD , Jr. |
| Variable Name | Description | Example |
|---|---|---|
| $randomCity | 무작위 도시 이름 | New York , Houston , Philadelphia |
| $randomJobArea | 무작위 작업 영역 | Intranet , Development , Testing |
| $randomJobDescriptor | 무작위 작업 설명자 | Corporate , Lead , Principal |
| $randomJobTitle | 무작위 직무명 | Global Branding Officer , Productivity Analyst |
| $randomJobType | 무작위 직무 유형 | Manager , Coordinator , Director |
5. 환경
5.1. 환경의 유형
- 글로벌 환경 - 글로벌 환경에서 정의된 변수는 언제든지 모든 작업 공간에서 접근할 수 있습니다. 단, 개인 환경이나 공유 작업 공간 환경에서 동일한 변수가 정의되어 사용될 경우, 해당 환경의 변수가 글로벌 변수보다 우선적으로 적용됩니다.
- 개인 환경 - 사용자가 개인적으로 사용하는 환경으로, 공유 작업 공간과 직접 연결되지 않습니다. 사용자는 공유 작업 공간에서도 개인 환경을 사용할 수 있으며, 해당 환경을 작업 공간 구성원과 공유하지 않을 수 있습니다.
- 공유 환경 - 각 공유 작업 공간에 고유한 환경입니다. 공유 작업 공간에서 생성된 모든 공유 환경은 해당 작업 공간의 모든 구성원이 접근할 수 있습니다.
5.2. 환경에서 변수의 유형
api-auto-test 환경은 두 가지 유형의 변수를 지원합니다.
- 일반 환경 변수: 사용자가 api-auto-test 전반에서 변수를 참조할 수 있도록 합니다. 일반 환경 변수의 값은 누구나 확인할 수 있습니다. 공유 작업 공간에서는 일반 환경 변수와 값이 서버와 동기화되어 모든 작업 공간 구성원이 사용할 수 있습니다. 단, 개인 환경 또는 글로벌 환경의 변수는 동기화 여부를 선택할 수 있는 옵션이 제공됩니다.
- 비밀 환경 변수: 사용자가 비밀 값을 변수로 참조할 수 있도록 합니다.비밀 변수의 값은 서버와 동기화되거나 작업 공간 구성원과 공유되지 않습니다. 사용자는 런타임에 비밀 변수의 값을 입력하는 것을 전제로 합니다. api-auto-test의 모든 비밀 변수 값은 별표(***로) 마스킹됩니다.
비밀 변수 값은 환경을 내보낼 때 포함되지 않습니다.
5.3. 공유 환경 접근
| 구분 | Environment Variable | Secret Variable |
|---|---|---|
| 작업 공간 소유자 | 변수 생성 / 삭제, 값 편집 및 사용 | 비밀 변수 생성 / 삭제, 값 추가 및 사용 |
| 작업 공간 편집자 | 변수 생성 / 삭제, 값 편집 및 사용 | 비밀 변수 생성 / 삭제, 값 추가 및 사용 |
| 작업 공간 뷰어 | 사용 | 값 추가 및 사용 |
5.4. 환경 생성
사이드바에서 "Environments" 아이콘을 클릭하여 환경을 생성할 수 있습니다.
환경에서 생성된 변수는 변수 이름을 이중 꺾쇠 괄호로 감싸는 형식 <<variable>>으로 입력하여 사용할 수 있습니다.
5.4.1. 클라이언트에서 환경 변수 생성
Environment variables요청 및 스크립트에서 환경 변수를 사용하는 방법을 학습할 수 있습니다.
환경 변수는 요청과 스크립트에서 값을 저장하고 재사용할 수 있도록 하며,다음과 같은 이점을 제공합니다.
- 요청 전반에서 변수를 참조할 수 있습니다.
- 한 곳에서 값을 수정하여 전체 요청에 반영할 수 있습니다.
- 작업 효율을 높이고 오류 가능성을 줄일 수 있습니다.
사이드바에서 환경 아이콘을 클릭한 후 new 버튼을 클릭하여 새 환경을 생성할 수 있습니다. 예를 들어, 환경 이름을 Pokemon Envs로 지정하고 baseURL라는 환경 변수를 https://pokeapi.co/api/v2로 설정할 수 있습니다.
동일한 방식으로 여러 환경과 환경 변수를 생성할 수 있습니다.
Accessing environment variable하나 이상의 환경이 있는 경우, 접근하려는 변수가 포함된 환경을 선택하세요. 요청 섹션에서 다음 형식으로 변수를 참조하여 접근할 수 있습니다. <<variable_name>> 예를 들어 <<baseURL>>을 사용하는 경우, 전체 URL은 <<baseURL>>/pokemon/ditto가 됩니다.
5.4.2. 스크립트를 사용하여 환경 변수 생성하기
Pre-request scriptsHoppscotch에서 사전 요청 스크립트를 사용하는 방법을 설명합니다.
ScriptsHoppscotch는 REST API 요청에 동적인 동작을 추가할 수 있도록 지원합니다. 이를 통해 테스트 스위트를 작성하거나 동적 매개변수를 포함한 요청을 구성할 수 있습니다. 요청 흐름에 따라 실행되는 ECMAScript 코드를 추가할 수 있습니다.
- 사전 요청 스크립트는 요청이 서버에 전송되기 전에 실행됩니다.
- 하나의 요청에 여러 개의 사전 요청 스크립트를 추가할 수 있습니다.
- 컬렉션에 저장된 요청과 저장되지 않은 요청 모두에 적용할 수 있습니다.
Hoppscotch는 지정된 순서에 따라 요청과 함께 스크립트를 실행합니다.
Pre-request script사전 요청 스크립트는 요청 실행 전에 수행되는 코드 조각입니다.
다음과 같은 전처리 작업에 사용할 수 있습니다.
- 매개변수 및 헤더 설정.
- 요청 본문 데이터 추가
- 변수 값 설정
- 요청 헤더에 타임스탬프 추가
Hoppscotch는 스크립트와 테스트를 작성하기 위한 여러 메서드를 포함하는 전역 객체 pw 를 제공합니다. 예를 들어, 환경 변수를 설정하려면 pw.env.set() 메서드를 사용할 수 있습니다.
pw.env.set("variable", "value");
ExamplesHoppscotch를 사용하여 사전 요청 스크립트를 활용한 예시는 다음과 같습니다.
Setting environment variablespw.env.set() 메서드를 사용하여 간단하게 환경 변수를 정의할 수 있으며, 요청 코드를 보다 깔끔하게 관리할 수 있습니다.
pw.env.set("baseURL", "https://httpbin.org");pw.env.set("method", "get");
사전 요청 스크립트 탭으로 이동하여 위의 ECMAScript 코드를 아래와 같이 복사하여 붙여넣습니다.
이 변수들은 요청 섹션에서 이중 꺾쇠 괄호 <<variable_name>> 로 참조하여 접근할 수 있습니다. 따라서 URL은 <<baseURL>>/<<method>> 가 됩니다.
API 테스트 시 임의의 사용자 데이터를 사용해야 하는 경우를 살펴보겠습니다.
다음 GET API 엔드포인트 https://reqres.in/api/users/ 를 사용합니다.
엔드포인트 URL에 <<randomValue>> 를 추가합니다.
https://reqres.in/api/users/<<randomValue>>
사전 요청 스크립트 탭에 다음 코드를 추가합니다.
var random = Math.floor(Math.random() * 10);pw.env.set("randomValue", random.toString());
ECMAScript 코드는 환경 변수 randomValue 에 임의의 숫자를 할당하며, API는 해당 값에 해당하는 임의의 사용자를 반환합니다.
다음과 유사한 응답을 확인할 수 있습니다.
{
"data": {
"id": 4,
"email": "eve.holt@reqres.in",
"first_name": "Eve",
"last_name": "Holt",
"avatar": "https://reqres.in/img/faces/4-image.jpg"
},
"support": {
"url": "https://reqres.in/#support-heading",
"text": "ReqRes를 무료로 유지하기 위해 서버 비용에 대한 기여가 감사드립니다!"
}
}
5.5. 스크립트 사용하기
다음과 같이 스크립트를 사용하여 pw 객체를 통해 환경 변수를 생성하거나 삭제할 수 있습니다.
pw.env.set("variable", "value"); // 환경 변수를 생성합니다
pw.env.unset("variable"); // 환경 변수를 삭제합니다
5.6. 환경 복제하기
원본 환경에 영향을 주지 않고다양한 구성을 수정하거나 테스트하기 위해 기존 환경의 복사본을 생성할 수 있습니다.
- 사이드바에서 “Environments” 아이콘을 클릭하여 Global Environments 아래에 있는 기존 환경 목록을 확인하세요.
- 복제하려는 환경 옆의 More 아이콘을 클릭하세요.
- 드롭다운 메뉴에서 Duplicate를 선택하세요. Duplicate 접미사가 포함된 새로운 환경이 생성됩니다.