본문 바로가기
Engineering/Jmeter, Postman

Postman : HTTP responsebody를 parsing하여 연속된 Request의 parameter로 사용하기

by 알탱2 2021. 7. 11.
반응형

Postman은 HTTP Protocol을 사용하는 API Server를 테스트할 때 자주 사용하게 된다.
특히 단일 API로 서비스가 끝나지 않고, 연속된 API를 호출하여 결과를 얻을 수 있도록 설계되는 경우가 점점 많아지고 있다. 이때 이전 Response Body에서 특정 key.value의 값을 추출하여 다음 Request의 url 또는 parameter value로 넘겨야 하는 경우가 종종 있다.
API를 호출할 때 마다 이전 Response Body에서 응답값을 Copy하여 다음 Request에 Paste하는 불편함을 줄일 수 있도록 Postman에서는 "Tests" 라는 메뉴를 통해 Script 작성 기능을 제공한다.

더 자세한 기능 및 예제는 Postman 공식 홈페이지를 통해 확인할 수 있다.
Link : https://learning.postman.com/docs/writing-scripts/script-references/test-examples/


아래는 실제 API 테스트 시, 자주 활용하는 json 형태의 Response Body에서 uuid라는 key의 value를 파싱하여 다음 Request의 요청 URL에 활용해 본 샘플이다. (불필요한 데이터들은 삭제함)

API#1 :
file을 upload하는 API를 호출하여 Response Body로 "uuid"를 json 형태로 응답받는 API.
upload된 파일을 Backend Server에서 unique하게 구별할 수 있는 uuid이며, 그 파일을 통해 정보를 얻기 위해 uuid가 필요하다.


Tests 메뉴를 선택한 후, json 형태의 Response Body에서 uuid를 parsing하여 uuid라는 key의 value를 "FILE_UUID" 라는 변수에 저장하는 스크립트 예제 : 

var data = JSON.parse(responseBody);

postman.setEnvironmentVariable("FILE_UUID"data.uuid);

Response Body에서 json응답의 uuid 값을 parsing하여 "FILE_UUID"라는 key의 value로 저장



API#2 :
이전 upload API를 통해 Backend Server에 저장된 file의 정보를 얻어오는 API.
정보를 얻고자하는 file을 특정하기 위해서는 그 file을 upload 하고 응답받은 uuid를 URL에 포함여 요청해야 한다.

요청 URL에 변수로 저장된 FILE_UUID의 value를 넣어주기 위해 중괄호 2개안에 변수를 입력하여 Request 작성 예제 :

http://{{be-ip}}:{{be-port}}/fileinfo/{{FILE_UUID}}/


** 위 예제에서는 변수를 URL에 포함하였으나, 셋팅된 변수는 URL뿐 아니라 요청 Request Parameter에서도 동일한 형태로 활용 가능하다.

반응형

댓글