DevOps

[Postman] pre-request script (module import)

문스코딩 2024. 2. 19. 22:09

Postman을 사용하다 보면 단순한 request-body가 아닌

비즈니스 로직이 포함되어야 하는 request-body를 전송해야 하는 경우가 있습니다.

 

이럴 때 pre-request script 기능을 사용하면 javascript를 이용해 request-body를 만들 수 있습니다.

외부 모듈 가져오기

https://blog.postman.com/adding-external-libraries-in-postman/

 

Adding External Libraries in Postman | Postman Blog

Learn how to use the libraries included in the Postman sandbox, then review some methods for adding your own external libraries.

blog.postman.com

 

pre-request script는 기본적으로 외부모듈 import를 지원하지 않습니다.

이럴 때 사용할 수 있는 방법 2가지가 있는데요.

 

첫 번째, 내장 모듈을 사용하는 것

Module을 사용할 수 없는 것에 불편함이 있기 때문에 

기본 내장 모듈을 제공합니다. moment, lodash, querystring 같은 script를 작성하는데 기본적으로 필요한 모듈들이 있습니다.

let moment = require('moment');
let jsonResponse = pm.response.json();
console.log("formatted date =", moment(jsonResponse.args.randomDate).format("MMM Do YYYY"));

 

 

그 외에도 기본적인 모듈을 제공하고 있어서

사용하려는 모듈이 내장 모듈로 지원하는지 아래 링크를 통해 확인할 수 있습니다.

https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#using-external-libraries

 

Manage API data and workflows using Postman JavaScript objects | Postman Learning Center

Manage API data and workflows using Postman JavaScript objects: documentation for Postman, the collaboration platform for API development. Create better APIs—faster.

learning.postman.com

 

 

두 번째, runtime에 모듈을 가져오는 것.

Postman 내장 모듈에 없다면 cdn으로 런타임시에 가져오는 방법이 있습니다.

우선 사용하고자 하는 모듈의 cdn 경로를 준비합니다.

pm.sendRequest("https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.0/dayjs.min.js", (err, res) => {
   //convert the response to text and save it as an environment variable
   pm.collectionVariables.set("dayjs_library", res.text());
 
   // eval will evaluate the JavaScript code and initialize the min.js
   eval(pm.collectionVariables.get("dayjs_library"));
 
   // you can call methods in the cdn file using this keyword
   let today = new Date();
   console.log("today=", today);
   console.log(this.dayjs(today).format())
})

 

반응형