Postman의 Collection, Folder, Request에는 Pre-request Script와 Tests라는 두 가지 스크립트 영역이 있습니다. 각각 요청 전과 후에 JavaScript 기반 스크립트를 실행하여 다양한 작업을 수행할 수 있습니다.
의존성이 있는 API를 호출할 때, 예를 들어 로그인이 필요하거나 이전 요청의 결과에서 파라미터를 추출해야 하는 경우, Pre-request Script에서 pm.sendRequest를 사용하여 사전 요청을 보낼 수 있습니다.
1. GET 요청 보내기
const endpoint = 'https://api.example.com/auth/token?appId=123456';
pm.sendRequest(endpoint, (err, response) => {
if (err) {
console.error('Request failed:', err);
} else {
console.log('Response body:', response.text());
}
});
응답 데이터를 환경 변수에 저장하여 이후 요청에 활용할 수 있습니다. 예를 들어, Pre-request Script에서 토큰을 받아 pm.environment.set('token', response.json().accessToken)과 같이 저장한 후, 실제 요청에서 {{token}}으로 참조합니다.
2. URL 인코딩 폼 데이터 POST 요청 보내기
const loginPayload = {
url: 'https://api.example.com/auth/login',
method: 'POST',
body: {
mode: 'urlencoded',
urlencoded: 'username=user&password=pass123'
}
};
pm.sendRequest(loginPayload, (err, response) => {
if (!err) {
console.log('Login response:', response.text());
}
});
출력 결과를 확인하려면 Postman 메뉴에서 View → Show Postman Console을 열고 요청을 보내면 됩니다.
3. JSON 형식 POST 요청 보내기
const registerPayload = {
url: 'https://api.example.com/user/register',
method: 'POST',
header: {
'Content-Type': 'application/json'
},
body: {
mode: 'raw',
raw: JSON.stringify({ name: 'testUser', password: 'secret123' })
}
};
pm.sendRequest(registerPayload, (err, response) => {
if (!err) {
console.log('Register response:', response.json());
}
});
4. XML 형식 POST 요청 보내기
XML 형식의 요청도 JSON과 유사하게 Content-Type만 변경하면 됩니다.
const xmlPayload = {
url: 'https://httpbin.org/post',
method: 'POST',
header: {
'Content-Type': 'application/xml'
},
body: {
mode: 'raw',
raw: '<message>Hello World</message>'
}
};
pm.sendRequest(xmlPayload, (err, response) => {
if (!err) {
console.log('Response:', response.json());
}
});
이 문서에서 예시로 사용된 API 엔드포인트는 실제 서비스가 아니므로, 테스트 시 실제 API URL로 변경해야 합니다.