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/
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"));
그 외에도 기본적인 모듈을 제공하고 있어서
사용하려는 모듈이 내장 모듈로 지원하는지 아래 링크를 통해 확인할 수 있습니다.
두 번째, 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())
})
반응형