RabbitMQ
는 docker
를 이용해서 켜둔 상태로 테스트를 진행합니다.
RabbitMQ
는 아래와 같이 여러 API를 제공합니다.
위 API들을 Postman
을 이용해서 호출하며 동작을 테스트해보려 합니다.
workspace 생성
Collection 생성
RabbitMQ
서버의 url
과 virtual host
의 경우 여러 테스트에서 반복적으로 사용되므로 환경변수로 생성합니다.
virtual host
는 최초 guest
계정을 사용한다면 /
입니다.
특수문자의 경우 url에 사용시 url 인코딩을 수행해야 하기 때문에 /
의 인코딩 된 값을 넣어줍니다. (%2f
)
RabbitMQ
는 basic auth
방식으로 인증이 가능합니다.
basic auth
는 username
과 password
로 인증을 수행하는 것이고 RabbitMQ
가 기본적으로 제공하는 admin
계정인 guest
를 사용합니다.
Collection
에 인증관련 정보(헤더)를 세팅하면 Collection
이하 모든 request에서 사용 가능합니다.
간단하게 fan-out
타입의 Exchange
를 생성하고 위 API를 이용해서 메시지 하나를 전송합니다.
fan-out
타입 Exchange
생성
생성된 Exchange
에 바인딩 시킬 Queue
하나를 생성하고 바인딩 합니다.
Exchange
에 message를 보내는 API는 아래와 같습니다.
{{url}}/api/exchanges/{{vhosts}}/:exchangeName/publish
:exchangeName
부분은 path variable
입니다.
message를 보내고자 하는 Exchange
의 이름을 넣습니다.
이제 API가 요구하는 body 부분을 JSON 형태로 구성합니다.
payload
부분이 message의 내용이 됩니다.
테스트하고자 하는 Exchage
의 타입이 fan-out
이므로 routing-key
는 비워둡니다.
일단 응답은 true
로 잘 왔습니다.
실제 Exchange
에 바인딩 된 Queue
로 message가 잘 들어갔는지 확인합니다.
이렇게 Postman을 이용하면 Collection
단위로 환경을 분리해가며 API의 동작을 손쉽게 테스트할 수 있습니다.
RabbitMQ
의 API에 대해 알아보려고 했는데 오히려 postman
을 잘 이용하는 방법을 알아가는 것 같습니다. 굉장히 자주 사용하는 툴인데 생각보다 제대로 활용을 하지 못한 것 같다는 생각이 듭니다..