Use External Data in Postman

Dahun Yoo·2020년 12월 6일
0

Introduce to Postman

목록 보기
12/17
post-thumbnail

테스트를 실행하기 전에 수많은 데이터들을 직접 작성하고, 그것을 사용해야할 때가 있을 것 입니다.
POSTMAN에서는 어떻게하면 좋을까요?


Basic usage

Request Body값에 값들을 지정해주며 넣어주면 됩니다.
이 방법은 Collection Runner에서 사용할 수 있는데요, csv나 json파일을 이용하여 업로드하고, 업로드한 데이터가 문제없는지 확인해준 다음 실행하면 됩니다.

[
	{
		"customerId":9000,
		"productId" : 5
	},
	{
		"customerId":9001,
		"productId" : 5
	},
	{
		"customerId":9002,
		"productId" : 5

	}

]

위와 같은 데이터를 업로드한다고 가정해봅시다.
그렇다면, Request body에서 사용하고자 할 때는 key값과 동일한 단어를 {{}} 로 감싸주는 것으로 사용할 수 있습니다.

"id" : "{{customerId}}",
"productID" : "{{productId}}"

위와 같은 식으로 지정해주고, Collection Runner를 통해 업로드 후 실행된다면 POSTMAN에서 자동적으로 해당 데이터들을 읽어들여 실행하게 됩니다.


업로드 한 후에는 자신이 업로드한 데이터를 preview도 할 수 있습니다.

Writing tests

그렇다면, 기대값과 실제 결과값이 일치하는지는 어떻게하면 좋을까요?
기대값 또한 데이터 파일로 업로드하여 사용할 수 있습니다.

pm.test("Should contain the customer id", function(){
	pm.expect(reponse.json.customerId).to.eql(
		pm.iterationData.get("customerId")
	);
});

이렇게 업로드한 파일은 Test 탭에서 사용하기 위해서는, pm.iterationData.get() 을 사용하여 조회할 수 있습니다. 업로드 된 데이터의 내용은 csv파일 기준으로 한 줄 한 줄 반복해나가며 실행합니다. (json파일이라며 괄호단위로)

이렇게 하여 Runner를 실행하였을 때 import한 Data의 key값을 끌어옵니다.

Advanced usage

사실, 외부데이터를 사용한다고 가정하고 script를 작성하였으나, request를 단독적으로 하나만 실행해야할 경우도 있을 수 있습니다.
위 data를 업로드하는 기능은 사실 Collection runner를 사용하였을 때의 이야기며 request 단독으로 실행시에는 얘기가 달라집니다.
앞서 request body에서 지정하는 variable은 사실 외부 데이터로부터 얻어오는 값인데, reques를 단독적으로 실행하면 받아오는 데이터가 없기 때문입니다. 이때 POSTMAN은 environment variable에 같은 이름을 가진 variable이 있는지 확인하고 있으면 가져오는 형태가 됩니다.
때문에 단독적으로 실행될때를 대비하여 environment variable에 초기값을 넣어주는 것도 가능합니다.

profile
QA Engineer

0개의 댓글