# Postman 변수 자동 저장

{% hint style="info" %}
Postman은 개발자들이 API를 디자인하고 빌드하고 테스트하고 반복하기 위한 API 플랫폼
{% endhint %}



공통된 값을 사용할 때 변수화하여 공통으로 관리하고는 합니다.

(주로 Base URL, Token 등)



여기서는 Base URL처럼 상수로 사용되는 값이 아니라 인증 시에 필요한 토큰(만료시간이 있는)을 발급받을 때&#x20;

제가 쓰는 방법을 공유하고자 합니다.



&#x20;기본적으로는 아래와 같이 변수로 선언하고&#x20;

<figure><img src="https://2477703702-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0zNEVFEcc7Tv0qxrOi2Y%2Fuploads%2FEPojcBYmiXuRqDSDBiut%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202024-04-21%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.52.05.png?alt=media&#x26;token=51e255fb-060f-4da5-b47c-50f25df49208" alt=""><figcaption></figcaption></figure>



다음과 같이 \{{ \}}를 붙여서 사용할 수 있습니다.

(collection scope와 전체 scope가 있는데 주로 collection 단위로 사용합니다.)

<figure><img src="https://2477703702-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0zNEVFEcc7Tv0qxrOi2Y%2Fuploads%2Fpxa7WF9qRB62u933Zwfc%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202024-04-21%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.53.28.png?alt=media&#x26;token=f87ac772-8c66-44a6-98b6-2dfa5c280686" alt=""><figcaption></figcaption></figure>





실제 적용은 아래와 같은 템플릿처럼 Test 코드를 작성할 수 있습니다.



예시는 토큰 발급 API를 기준으로 합니다.



발급받게 되는 request에 Tests 탭에서 javascript 문법의 코드를 작성해주고 set함수를 이용하여 저장시켜줄 수 있습니다.

<figure><img src="https://2477703702-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0zNEVFEcc7Tv0qxrOi2Y%2Fuploads%2FXZXoVGHij4SnoQ2O7mlS%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202024-04-21%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.55.08.png?alt=media&#x26;token=ed8823ed-f1f9-4d7b-a2c6-45f967e264f0" alt=""><figcaption></figcaption></figure>

단 조심해야할 부분은,

1. json의 경우 response.json()을 사용해야 해당 객체로 접근할 수 있습니다.
2. environment scope와 collectionVariables를 구분해야 합니다.
3. 로그를 보고 싶다면 console에서 확인할 수 있고 Tests 탭에서도 console.log를 사용할 수 있습니다.



아래는 위의 코드 복사 예시입니다.

```
if (pm.response.to.have.status(200)) {
    var responseData = pm.response.json();
    pm.collectionVariables.set("access-token", responseData.data.token.accessToken);
    pm.collectionVariables.set("refresh-token", responseData.data.token.refreshToken);
}
```



