Postman Mock Server 만들기

Kim, Sujin·2023년 10월 15일
1
post-thumbnail

아아 오늘은 Postman을 이용하여 MockServer 만들기를 simple&easy하게 소개하겠습니다

api

오늘의 실습을 위해 간단한 api를 만들어보았어요.
아주아주 단순한 @GET 하나, @DELETE 하나랍니다.

GET /resource/{id}

Request

{
	"id": 1
}

Respond

200 OK
{
	"id": 1,
	"name": "Example Resource"
}

DELETE /resource/{id}

Request

{
	"id": 1,
}

Response

204 No Content

아주 간단하죠? 이걸로 Mock Server를 만들어보도록 할게요!

MockServer 만들기

API 명세가 있으신 여러분, Postman을 켜세요!

Workspace에 들어가면 다음과 같이 보일 텐데요.
여기서 Mock Servers를 클릭해서 Create Mock Server 클릭 !
본격적으로 MockServer를 만들어봅시다.
(만약 Mock Servers가 보이지 않는다면 하단 버튼(초록 네모)을 눌러보면 보입니다!)

다음과 같이 Mock Server에 들어갈 Request들의 정보들을 적어준 후,

Mock Server 세팅을 해주면 끝 ! Create Mock Server를 해줍시다 !

보너스 팁

💡 Save the mock server URL as an new environment variable

이 부분을 체크해주면, 생성한 mock server의 긴 url을 postman 내의 환경변수로 저장해주어요.

짜잔 url이라는 이름으로 변수가 만들어졌네요!
이 변수는 {{url}} 와 같은 형태로 사용이 가능합니다.

Example 만들기

Mock Server를 만든 뒤, 왼쪽 메뉴 중 Collections를 눌러보세요.

다음과 같이 Collection이 만들어져 있답니다 (짝짝)
api가 만들어져있고, e.g.가 붙어있는 부분이 해당 api의 예시입니다.

Params, Authorization, Headers 등의 조건들을 다르게 하여 예시를 계속 추가할 수 있어요.


본격적으로 example을 만들기 위해, 우선 e.g.가 붙어있는 예제를 편집해볼게요.

상단의 Params, Headers, Body에는 Request에 관한 정보,
하단의 Body, Headers에는 Response에 관한 정보를 적어줘요.
(저는 하단의 Body에 Json 형태로 받을 응답 예시를 적어주었어요!)

Try를 눌러 API를 호출했을 때 원하는 응답값이 잘 나온다면,
잊지 말고 변경 내역을 Save 해주세요 :)


저장을 하고 Mock Server의 View Collection Docs를 눌러보면,
해당 Example이 추가된 Mock Server 문서를 확인해볼 수 있어요.

Example 추가

만약, 새로운 조건 혹은 새로운 응답값, 또는 실패의 경우에 대해서도 example을 추가하고 싶다면,

Add example을 해주면 됩니다. (간단하죵!?)

Mock Server Test

만들어진 Mock Server를 이용해서, Android 테스트에 적용해볼게요!

// HttpClient ( Retrofit2라면 Retrofit.Builder() )
val api = DefaultApi(
	// BaseUrl에 Mock Server Url 전달
    MOCK_SERVER_URL, null, null
)
// api 호출
val response = api.resourceIdGet(1)

val actual = response.body()
val expected = ResponseModel(1, "Example Resource")
assertEquals(expected, actual)

저는 Ktor를 활용해 API를 테스트해보았는데요!
(제 이전 게시글을 보셨다면.. 눈치채셨을 수 있지만.. 호출하는 함수들이 code generator를 활용해 만들어진 코드들이므로.. 각 함수의 내부 코드는 저도 이해하지 못해서.. 공개하지 않을게욥... ㅠㅠ)_

여러분의 RetrofitBuilder, 혹은 HttpClient 등 서버 통신을 위한 클래스를 만들 때, BaseUrl에 mock server URL을 넘겨주면 Mock server와 통신이 가능해집니다.




.. 끗 !

참고 자료

https://devvkkid.tistory.com/219#toc-%E2%9C%8D%EF%B8%8F%20Mock%20Server%20%EB%A7%8C%EB%93%A4%EA%B8%B0
https://velog.io/@whytili/Postman-Mock-Server
https://velog.io/@jeongminji4490/Android-Postman%EC%9C%BC%EB%A1%9C-Mock-Server-%EB%A7%8C%EB%93%A4%EC%96%B4%EC%84%9C-API-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0

0개의 댓글