Postman에서는 Collection 내에 존재하는 모든 Request에서 parameter값을 공유할 수 있도록, global / environment variable을 지원합니다.
예를 들어, 어떠한 게시글을 생성한 후, 삭제를 하는 flow로 실행한다고 가정합시다. 이 때 생성한 게시글의 고유한 id값이 있어야, 해당 게시글을 삭제할 수 있을 것입니다.
이때 variable
을 이용하면, 같은 request가 아닌 다른 request에서도 해당 값을 마치 parameter처럼 이용할 수 있게됩니다.
혹은, 인증에 필요한 key와 token값을 미리 저장하여 API Request를 실행할때마다 매번 입력해줄 필요없이, variable값을 불러와서 실행할 수도 있습니다.
variable은 다시 몇가지 하위 variable로 나뉘며, scope가 정해져있습니다.
global > Environment > local
위와 같은 scope대로 정의되어있으며, environment variable은 같은 collection내의 request에만 허용되고, global variable은 Postman전체에서 사용된다고 보시면 됩니다.
POSTMAN의 우측 상단에 눈동자를 클릭하면, variable 설정 팝업이 표기됩니다. 상단은 environment, 하다는 global입니다.
여기서 키값과 설정값을 설정해주시면 됩니다.
초기값이 필요없다면, 설정해주지 않으셔도 됩니다.
이후 request내에서 사용하기 위해서는 중괄호를 두번 열고 keyname을 써주고 닫아주면 됩니다.
{{keyName}}
Test탭의 테스트코드에서도 사용할 수 있습니다.
pm.globals.get("variable_key");
pm.globals.set("variable_key", variable_value);
getter, setter를 이용하면 원하는 variable의 값을 호출하고, 저장할 수 있습니다. 이 때, global variable과 environment variable중 같은 이름을 가진 variable이 존재한다면, postman은 해당 variable이 사용되는 request로부터 가장 가까운 scope의 variable을 찾아 사용하게 됩니다.
이 때 공유하는 변수들의 값이 잘못 overwrite될까 걱정이신 분들은 아래의 메소드를 사용하시면 해결할 수 있습니다.
pm.globals.unset("variable_key");
pm.globals.clear();
근데, Postman을 사용하면서 테스트를 하다보면, 사용하는 request는 동일하지만, 이것을 Alpha / Beta / Staging(RC) / Real 에 나누어 Request의 호출주소만 바꾸어서 사용해야할 경우도 있습니다.
이 때 환경변수의 값은, 같은 환경변수를 호출해도 환경마다 다 다른값이 필요할 것입니다. 이럴때 environment를 사용하면 좋습니다.
environment를 각각 환경에 맞게 각기 설정을 해주고, 같은 용도로 쓰이는 값들에 대해 같은 key name으로 선언해줍니다.
그리고 실행환경마다 다른 environment를 설정해주어서 실행하기만 하면 되는 것입니다.