Postman에서 요청의 본문을 동적으로 생성하는 방법은 무엇인가요?
_____A: Postman에서 요청 본문을 동적으로 생성하는 방법은 여러 가지가 있습니다. 대표적인 방법은 다음과 같습니다.
1. Pre-request Script 사용하기
- 요청 실행 전에 JavaScript 코드를 작성해 변수 값을 동적으로 생성하거나 수정할 수 있습니다.
- `pm.variables.set("key", "value")`를 사용해 변수에 값을 저장한 후, 본문에 `{{key}}` 형식으로 참조할 수 있습니다.
- 예:
```javascript
// Pre-request Script
let timestamp = Date.now();
pm.variables.set("current_timestamp", timestamp);
```
요청 본문:
```json
{
"createdAt": "{{current_timestamp}}"
}
```
2. 파라미터/변수 템플릿 사용하기
- Postman 환경 변수(Environment Variables), 컬렉션 변수(Collection Variables), 글로벌 변수(Global Variables) 또는 로컬 변수(Local Variables)를 미리 정의하고 요청 본문에 `{{변수명}}` 형태로 삽입합니다.
- 변수 값은 Pre-request Script에서 동적으로 변경 가능하며, 실행 시점에서 치환됩니다.
3. 동적 JSON 생성 및 설정 (Pre-request Script 내에서)
- Pre-request Script에서 JavaScript 객체를 생성해 JSON 문자열로 변환한 뒤, 해당 값을 변수로 설정할 수 있습니다.
- 예:
```javascript
id: Math.floor(Math.random() * 1000),
name: "User" + Math.floor(Math.random() * 100)
};
pm.variables.set("dynamic_body", JSON.stringify(body));
```
요청 본문:
```json
{{dynamic_body}}
```
단, Body 탭에서 'raw' 타입으로 설정하고 JSON 형식이어야 하며, 변수 치환 시 문자열 구조가 올바른 JSON 형태인지 확인해야 합니다.
4. Data 파일(CSV, JSON) 사용하기
- Collection Runner에서 외부 데이터 파일을 불러와 각 요청마다 다른 본문을 자동으로 생성할 수 있습니다.
- CSV나 JSON 파일 내 필드를 `{{필드명}}` 변수로 요청 본문에 사용하면, 실행 시 데이터가 자동 치환됩니다.
5. 동적 쿼리나 Body 제작을 위한 스니펫 활용
- Postman 내 기본 제공하는 코드 스니펫이나 커스텀 함수를 Pre-request Script에 작성해 복잡한 값도 동적으로 처리 가능합니다.
---
요약:
- Pre-request Script에서 변수 생성 및 JSON 문자열 생성
- 본문에 변수 템플릿 `{{변수명}}` 사용
- Data 파일과 연계해 여러 데이터로 반복 실행
- 환경 변수와 컬렉션 변수를 활용해 동적 데이터 관리
이 방법들을 조합하면 요청 본문을 상황에 따라 자유롭게 동적으로 생성하고 관리할 수 있습니다.
이를 통해 다양한 테스트 시나리오를 쉽게 구현할 수 있습니다.
본문을 동적으로 생성하는 방법에는 여러 가지가 있으며, 아래에서 자세히 설명하겠습니다.
1. 변수 사용하기 Postman에서는 환경 변수와 전역 변수를 사용하여 요청 본문을 동적으로 생성할 수 있습니다.
변수를 사용하면 요청을 보낼 때마다 값이 변경될 수 있습니다.
예시: 1. 변수 설정 : Postman의 "환경" 또는 "전역" 탭에서 변수를 설정합니다.
예를 들어, `{{username}}`과 `{{password}}` 변수를 설정할 수 있습니다.
2. 요청 본문 작성 : 요청 본문에서 변수를 사용합니다.
```json { "username": "{{username}}", "password": "{{password}}" } ```
3. 변수 값 변경 : 요청을 보내기 전에 변수 값을 변경하여 다른 데이터를 테스트할 수 있습니다.
2. Pre-request Script 사용하기 Postman의 Pre-request Script 기능을 사용하면 요청이 전송되기 전에 JavaScript 코드를 실행하여 본문을 동적으로 생성할 수 있습니다.
예시: 1. Pre-request Script 작성 : 요청의 "Pre-request Script" 탭에서 JavaScript 코드를 작성합니다.
```javascript pm.variables.set("dynamicValue", Math.random()); ```
2. 요청 본문 작성 : 본문에서 변수를 사용합니다.
```json { "randomNumber": "{{dynamicValue}}" } ```
3. 요청 전송 : 요청을 전송하면 `randomNumber` 필드에 랜덤 숫자가 포함됩니다.
3. Collection Runner와 Data Files 사용하기 Postman의 Collection Runner를 사용하면 CSV 또는 JSON 파일을 통해 여러 데이터 세트를 사용하여 요청을 반복적으로 실행할 수 있습니다.
예시: 1. 데이터 파일 준비 : CSV 또는 JSON 파일을 준비합니다.
```csv username,password user1,pass1 user2,pass2 ```
2. Collection Runner 실행 : Collection Runner를 열고, 요청을 선택한 후 데이터 파일을 업로드합니다.
3. 요청 본문 작성 : 요청 본문에서 변수를 사용합니다.
```json { "username": "{{username}}", "password": "{{password}}" } ```
4. 실행 : Collection Runner를 실행하면 각 데이터 세트에 대해 요청이 전송됩니다.
4. Dynamic Data Generation Postman에서는 Faker.js와 같은 라이브러리를 사용하여 동적으로 데이터를 생성할 수 있습니다.
이를 통해 랜덤한 이름, 이메일, 주소 등을 생성할 수 있습니다.
예시: 1. Pre-request Script 작성 : Faker.js를 사용하여 랜덤 데이터를 생성합니다.
```javascript const faker = require('faker'); pm.variables.set("randomName", faker.name.findName()); pm.variables.set("randomEmail", faker.internet.email()); ```
2. 요청 본문 작성 : 본문에서 변수를 사용합니다.
```json { "name": "{{randomName}}", "email": "{{randomEmail}}" } ``` 결론 Postman에서 요청의 본문을 동적으로 생성하는 방법은 다양합니다.
변수, Pre-request Script, Collection Runner, 그리고 외부 라이브러리를 활용하여 유연하고 강력한 API 테스트를 수행할 수 있습니다.
이러한 기능들을 적절히 활용하면 API의 다양한 시나리오를 손쉽게 테스트하고 검증할 수 있습니다.
작성자:
박재윤 [비회원]
| 작성일자: 1년 전
2024-11-24 07:41:44
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 130 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.