진짜 개발자
본문 바로가기

Application Knowhow

Application Knowhow - Grpc 부하테스트 도구 소개 (ghz)

728x90

오늘은 GRPC load test(부하테스트) 도구를 소개해 드리려고 해요.


공식 홈페이지

https://ghz.sh/



사용 예시

Unary Call만을 테스트해보았기 때문에 해당 예제만 알려드리도록 하겠습니다.. 나머지는 공홈을 참조해주세요.


n: 테스트 회수
c: 동시 요청자 수
proto: 테스트 대상 proto 파일 (해당 파일의 위치를 절대경로, 상대경로로도 작성 가능)
call: 테스트 대상 proto파일 내 메소드를 의미하며, package.service명.method명 으로 적어주세요
d: data를 의미하며, 메소드가 수신하고자 하는 param의 유형에 따라 적절히 변경 필요하다. 주의할점은 ''(따옴표 내에 작성해야한다.)
마지막줄은 테스트 대상 서버의 주소:port에요.




ghz --insecure -n 100 -c 5 \
--proto ./business_user.proto \
--call com.daangn.business.auth.v1.BusinessUserService.GetById \
-d '62'
localhost:3333


단건, int64를 param으로 수신하는 메소드에 대한 테스트. (대상 메소드는 첨부한 이미지의 인터페이스를 가진다)



ghz --insecure -n 100 -c 5 \
--proto ./business_user.proto \
--call com.daangn.business.auth.v1.BusinessUserService.ListByIds \
-d '{ "ids": [98517,1000027,1000030,1000037,1000043,1000063,1000070,1000073,1000087,1000088,1000092,1000095,1000096]}'
localhost:3333


List int64를 가진 객체를 param으로 수신하는 메소드에 대한 테스트. (대상 메소드는 첨부한 이미지의 인터페이스를 가진다)




Web

https://ghz.sh/docs/web/intro
ghz 결과를 웹화면에서 볼 수 있는 도구도 제공하는것 같습니다. (사용해보지는 않았어요 ㅎ..)