Postman에서 변수를 사용해 효율적인 POST 요청 보내는 방법

Postman을 이용해 API 테스트와 POST 요청 전송을 진행하는 과정에서, 사용자에 따라 변경되는 정보를 변수로 받아 처리하는 방법을 찾아냈다.

처음에는 Params의 Key와 Value를 이용했으나, 원하는 결과를 얻지 못해 Postman의 Pre-request Script를 활용하게 되었다.

이를 통해 변수를 효율적으로 사용하며 작업을 수행하게 되었다.

 

 

 

✨시작하며

API 테스트 및 POST 요청 전송을 위해 Postman을 다시 사용하게 되었다.
내가 전송할 데이터는 카카오 알림톡 데이터라 우선 Body > raw를 설정해 주고 raw 값을 입력해 주었다.

 

문제는 알림톡을 테스트 및 전송 시마다 사용자에 따라 전화번호나 이름 등의 정보가 변경될 텐데 이 정보를 하나하나 손수 커서를 맞춰 값을 수정할 수는 없었다.
시간도 너무 많이 드는 데다 피로도가 심하고 가독성도 좋지 않았기 때문에 이를 변수로 받아 사용하는 방법을 찾게 되었다.

 

 

 

테스트 코드

수월한 설명을 위해 테스트 코드를 미리 배경으로 깔고 가겠다.

[
    {
        "sender_key": "senderKey",
        "button": [
            {
                "name": "채널 추가",
                "type": "AC"
            },
            {
                "url_mobile": "urlMobile",
                "url_pc": "urlPc",
                "name": "예약 조회",
                "type": "WL"
            }
        ],
        "phoneNum": "{{tel}}",
        "message": "==테스트== 예약 안내\n\n안녕하세요. {{name}}님\n정상적으로 예약되었습니다. 아래의 예약 조회를 통해 확인해 주세요.\n\n- 예약자명 : {{name}}\n- 예약일시 : {{date}}\n"
    }
]

 

 

 

🤔변수에 값은 어떻게 할당해?

Params

처음에는 Params의 Key와 Value를 이용했다.
SOF에서 변수를 사용할 때는 {{Key}}의 형태로 사용하면 된다고 해서 raw 중 변수를 사용할 부분을 해당 형태로 작성해 주었다.

 

처음엔 그래서 이렇게 설정하면 메시지가 전송될 거라 생각했는데 아니었다.
{{Key}} 형태로 작성한 내용이 Value가 아닌 Key 이름 그대로 전송되었다.

message의 value 그대로 알림톡이 전송되버렸다.

 

 

 

Pre-request Script

이 방법으로는 변수를 사용하지 못하는 것 같아 다른 방법을 찾아보던 중, Postman에서 작성한 공식 문서유튜브 영상을 발견했다.

 

변수를 사용해 더 효율적으로 작업을 수행하라고 적혀있다.
딱 내가 원하던 기능이다!
개인적으로는 영상이 사용법을 빠르게 이해하기 좋았다.

 

이제 Postman의 Pre-request Script에 아래처럼 pm.collectionVariables.set 코드를 적어준다.

// name(예약자명), date(예약일시)
pm.collectionVariables.set("name", "김규진");
pm.collectionVariables.set("date", "2023-07-06");

 

다음으로 Body알림톡 관련 API 코드를 작성해 준다.
예시를 위해서 알림톡을 사용한 것이지, 변수만 사용할 수 있다면 다른 코드여도 상관없다.
여기서 변수는 {{변수명}}으로 호출하면 된다.

[
    {
        "sender_key": "senderKey",
        "button": [
            {
                "name": "채널 추가",
                "type": "AC"
            },
            {
                "url_mobile": "urlMobile",
                "url_pc": "urlPc",
                "name": "예약 조회",
                "type": "WL"
            }
        ],
        "phoneNum": "{{tel}}",
        "message": "==테스트== 예약 안내\n\n안녕하세요. {{name}}님\n정상적으로 예약되었습니다. 아래의 예약 조회를 통해 확인해 주세요.\n\n- 예약자명 : {{name}}\n- 예약일시 : {{date}}\n"
    }
]

 

이렇게 POST 요청을 보내면 앞서 Pre-request Script에 작성한 변수명에 따른 value 값이 정상적으로 들어가는 것을 확인할 수 있다.
내용을 요약하자면 아래와 같다.

  1. Pre-request Script에 변수를 설정해 준다.
  2. 설정한 변수 사용을 위해 Body에서 {{변수명}}의 형태로 변수를 호출한다.

 

 

 

📜참고