Postman에서 응답의 특정 필드를 추출하는 방법은 무엇인가요?

_____
Q: Postman에서 API 응답의 특정 필드를 어떻게 추출하나요?

A: Postman에서는 테스트 스크립트(Test script) 영역에 JavaScript 코드를 작성하여 응답(Response)의 특정 필드를 쉽게 추출할 수 있습니다. 기본적인 방법은 `pm.response.json()` 메서드로 JSON 응답을 파싱한 후, 점(.) 표기법 또는 대괄호([ ]) 표기법으로 원하는 필드를 접근하는 것입니다.

---

Q: JSON 응답에서 특정 필드를 추출하는 간단한 예제는?

A: 예를 들어, 응답이 아래와 같을 때:

```json
{
"user": {
"id": 123,
"name": "John Doe",
"email": "[email protected]"
}
}
```

Postman 테스트 스크립트에서 특정 필드를 추출하는 방법:

```javascript
const response = pm.response.json();
const userId = response.user.id;
const userName = response.user.name;
console.log('User ID:', userId);
console.log('User Name:', userName);
```

---

Q: 추출한 필드를 환경 변수나 글로벌 변수로 저장하려면 어떻게 하나요?

A: `pm.environment.set(variableName, value)` 또는 `pm.globals.set(variableName, value)` 메서드를 사용합니다. 예:

```javascript
const response = pm.response.json();
pm.environment.set('userId', response.user.id);
pm.environment.set('userName', response.user.name);
```

이후 다른 요청에서 `{{userId}}`, `{{userName}}`으로 변수를 사용할 수 있습니다.

---

Q: 만약 응답이 배열일 경우 특정 요소의 필드를 추출하려면?

A: 배열 인덱스를 이용해 접근하면 됩니다. 예를 들어 응답이:

```json
[
{"id":1, "name":"A"},
{"id":2, "name":"B"}
]
```

이럴 때 두 번째 요소의 이름을 추출하려면:

```javascript
const response = pm.response.json();
const secondName = response[1].name;
console.log('Second Name:', secondName);
```

---

Q: 응답이 복잡한 중첩 구조일 때 특정 필드 접근 방법은?

A: 점 표기법(dot notation)이나 대괄호 표기법(bracket notation)을 조합하여 접근합니다. 예:

```javascript
const response = pm.response.json();
const value = response.level1.level2['targetField'];
```

또는

```javascript
const value = response['level1']['level2']['targetField'];
```

---

Q: 엔드포인트 테스트 시 특정 필드가 존재하는지 확인하는 방법은?

A: `pm.expect()` 구문을 사용합니다.

```javascript
const response = pm.response.json();
pm.test('user.id 필드가 존재하는지 확인', function () {
pm.expect(response.user).to.have.property('id');
});
```

---

요약:
- 응답 JSON은 `pm.response.json()`으로 파싱
- 점 또는 대괄호 표기법으로 필드 접근
- `pm.environment.set()` 또는 `pm.globals.set()`으로 변수 저장
- `pm.expect()`로 필드 존재 여부 테스트 가능

Postman 스크립트를 통해 API 테스트 및 변수 관리가 매우 효과적으로 가능합니다.
Postman은 API 테스트 및 개발을 위한 강력한 도구로, 요청을 보내고 응답을 확인하는 것 외에도 응답 데이터에서 특정 필드를 추출하여 후속 작업에 활용할 수 있는 기능을 제공합니다.

이 기능은 주로 테스트 스크립트나 후속 요청에서 사용됩니다.

아래에서는 Postman에서 응답의 특정 필드를 추출하는 방법에 대해 자세히 설명하겠습니다.

1. Postman의 기본 구조 이해하기 Postman은 요청을 보내고 응답을 받는 구조로 되어 있습니다.

요청을 보내면 서버로부터 JSON, XML, HTML 등 다양한 형식의 응답을 받을 수 있습니다.

이 응답에서 특정 데이터를 추출하여 변수로 저장할 수 있습니다.



2. 응답 데이터 확인하기 먼저, API 요청을 보내고 응답을 확인해야 합니다.

응답은 Postman의 "Body" 탭에서 확인할 수 있습니다.

JSON 형식의 응답을 예로 들면, 다음과 같은 구조일 수 있습니다: ```json { "user": { "id": 1, "name": "John Doe", "email": "[email protected]" }, "status": "success" } ```

3. 테스트 스크립트 작성하기 Postman에서는 요청 후 "Tests" 탭에서 JavaScript를 사용하여 응답을 처리할 수 있습니다.

특정 필드를 추출하기 위해 `pm.response.json()` 메서드를 사용하여 JSON 응답을 JavaScript 객체로 변환할 수 있습니다.

예를 들어, 위의 JSON 응답에서 `user.id`와 `user.name`을 추출하고 싶다면 다음과 같은 스크립트를 작성할 수 있습니다: ```javascript // 응답을 JSON 객체로 변환 let responseJson = pm.response.json(); // 특정 필드 추출 let userId = responseJson.user.id; let userName = responseJson.user.name; // Postman 환경 변수에 저장 pm.environment.set("userId", userId); pm.environment.set("userName", userName); ```

4. 변수 활용하기 이제 추출한 변수는 Postman의 다른 요청에서 사용할 수 있습니다.

예를 들어, 다음 요청의 URL이나 본문에서 `${userId}` 또는 `${userName}`과 같은 형식으로 변수를 참조할 수 있습니다.



5. 테스트 결과 확인하기 테스트 스크립트를 작성한 후, 요청을 다시 실행하면 Postman의 "Test Results" 탭에서 스크립트의 실행 결과를 확인할 수 있습니다.

성공적으로 변수를 설정했다면, "Tests" 탭에서 "Passed" 메시지를 볼 수 있습니다.



6. 추가적인 팁 - JSONPath 사용하기 : Postman은 JSONPath를 지원하지 않지만, JavaScript를 사용하여 응답을 쉽게 탐색할 수 있습니다.

복잡한 JSON 구조를 다룰 때는 객체의 속성을 단계별로 접근하는 것이 좋습니다.

- 환경 변수와 글로벌 변수 : Postman에서는 환경 변수와 글로벌 변수를 사용할 수 있습니다.

환경 변수는 특정 환경(예: 개발, 테스트, 프로덕션)에 따라 다르게 설정할 수 있으며, 글로벌 변수는 모든 환경에서 사용할 수 있습니다.

- 에러 처리 : 응답이 예상과 다를 경우를 대비하여 에러 처리를 추가하는 것이 좋습니다.

예를 들어, 특정 필드가 존재하는지 확인하고, 존재하지 않을 경우 적절한 메시지를 출력하도록 할 수 있습니다.

```javascript if (responseJson.user) { pm.environment.set("userId", responseJson.user.id); } else { console.error("User data not found in response"); } ``` 결론 Postman에서 응답의 특정 필드를 추출하는 것은 API 테스트 및 자동화의 중요한 부분입니다.

이를 통해 후속 요청에서 필요한 데이터를 쉽게 사용할 수 있으며, 테스트의 효율성을 높일 수 있습니다.

JavaScript를 활용하여 응답을 처리하고 변수를 설정하는 방법을 익히면, Postman을 더욱 효과적으로 활용할 수 있습니다.

작성자: 이승호 [비회원] | 작성일자: 1년 전 2024-11-24 07:41:31
조회수: 190 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.