Back-End/[Postman]

[Postman] 포스트맨 pre-request script 활용법, token 갱신 자동화

연구소장 J 2024. 1. 9. 22:22

Pre-request script

postman pre-request script
[그림 1] pre-request script

 

 

포스트맨에서 pre-request script는 request를 전송하기 전에 자바스크립트 코드를 실행할 수 있는 기능이다.

 

pre-request script는 단순히 request 뿐만 아니라 collection, folder 단위로도 작성이 가능하다.

 

pre-request script는 주로 환경 변수 설정, 파라마티나 헤더 설정, 디버깅 코드 실행 등으로 사용이 가능하다.

또는 로그를 남기는 용도로도 사용할 수 있다.

 

Tests와의 차이는 Tests는 request가 전송되고 response가 온 후에 실행되지만, 

pre-request script는 request가 전송되기 전에 실행된다는 점이다.

 

 

참고)

 

 

[Postman] 포스트맨 환경변수(Environments Variables) 사용법, Environments 설정법

포스트맨 환경(Environments) 설정 포스트맨은 한 개 이상의 변수들(variables)을 저장해놓을 수 있는 환경(Environments)을 설정할 수 있다. 사이드바의 Environments 탭에서 + 버튼을 누르면 새로운 환경을 만

code-lab1.tistory.com

 

활용법

다음은 내가 실제로 실무에서 활용한 코드이다.

[그림 2] pre-script 코드

 

어떤 서비스에 request를 보낼때 accessToken이 있어야지만 권한 체크를 통과할 수 있다고 하자.

 

토큰은 제한 시간이 있기 때문에 하드 코딩할 수 없으니 매번 토큰을 새로 작성해줘야하는 불편함이 있다.

 

이를 pre-request script에서 미리 로그인을 하고 accessToken을 받는 식으로 해결했다.

 

const loginRequest = {
    url: "https://...",
    method: 'POST',
    header: {header값},
    body: {body 값 }
};

pm.sendRequest(loginRequest, function(err, response){
	res = response.json();
    pm.environment.set("access_token", res.accessToken);
});

 

위 코드를 간략히 설명하자면, loginRequest라는 HTTP 요청을 보낼 객체를 만든다.

해당 객체에는 url 정보, HTTP 메소드 정보, header, body 값을 넣는다.

 

그리고 pm.sendRequest를 통해 HTTP 요청을 보내고 받은 response에서 accessToken 정보를 

포스트맨의 access_token 환경변수에 넣는다.

포스트맨 환경변수 활용
[그림 3] 환경변수 활용

 

 

그럼 위와 같이 Authorization 탭의 Token에 미리 설정해둔 access_token 환경변수를 넣어주기만 하면

매 request마다 새로운 access_token을 가져와서 전송할 것이다.

 

이렇게 pre-request script를 활용하면 간편히 환경변수를 설정할 수 있다.

 

snippets
[그림 4] snippets

 

pre-request script를 작성할 때 옆의 Snippets를 활용하면 더욱더 간편하게 스크립트를 작성할 수 있다.

 

자주 사용되는 코드를 Snippets에서 제공해주기 때문에 이를 활용해보자.

 

 


참고

 

[1] 포스트맨 공식 홈페이지 : https://learning.postman.com/docs/writing-scripts/pre-request-scripts/

반응형