부하테스트 툴 검토 결과
항상 성능 테스트를 준비할때 마다, 어떤 부하 테스트툴을 쓰느냐가 고민이다.
어느정도 틀이 갖춰진 조직이나, 예산이 충분한 경우에는 뒤도 안돌아보고 파트너 불러다가 Load Runner돌린다.
1. Load Runner
국내 인력도 많고, 다양한 시나리오에 대한 부하 테스트를 안정적으로 할 수 있어서 언제나 #1 옵션이지만, 비용이 살인적이다.
2. 기타 오픈소스
그래서 오픈소스를 검토해봤는데,
Apache JMeter의 경우 예전에 하도 실패를 많이 했고, 테스트 중 GC 발생도 그렇고, 툴 자체가 매우 세밀하게 사용을 해야 한다. 부하 테스트 툴이라기 보다는 부하테스트 프레임웍 정도로 보는게 맞지 않을까?
그 다음으로 예전에 Multimechnizer라는 툴을 고민했었는데, Erlang기반이고 Python으로 스크립트를 짠다. Erlang기반이라서 분산 환경을 기반으로한 대규모 부하테스트가 가능하고 신뢰성도 있었으나, Learning Curve가 커서 접어야 했던 제품
근래에 툴들을 리서치 해보니,
Grinder를 기반으로 해서, NHN이 Curbrid를 DB로 바꾸고, WEB UI를 사용한 nGrinder라는 제품을 국내에서는 꽤 많이 쓰는듯 하다. 오픈소스이긴 한데, 글로벌 개발팀(해외에 개발팀이 있는 경우)에는 기술 지원이나 자료 부족등의 이유 때문에 망설여지는 툴
다음으로 LoadUI라는 도구다. 라이센스가 대략 10,000USD정도 하는데, SOAPUI를 만들었던 회사의 제품이다. UI나 저작 도구가 매우매우 특이하다. Mashup 제품을 보는 느낌이라고 할까?
일단 기술 지원이 가능하니 심각하게 고려하고 있는 제품
이외에, 국내 블로그를 찾아보니 Apache AP나 HP HTTPerf(근래에 구글에 인수됨)이 있는데, 이 제품들은 웹서버에 성능 테스트에 최적화 되어 있다. 즉, 대규모의 HTTP 부하를 날리 수 는 있지만, HTTP message를 programatic하게 생성한다던가 (ID를 로직에 따라서 생성). HTTP Response를 비교하는 등의 기능이 없다. 단순하게 부하만 생성해서 날려 주는 거라서, 말 그대로 웹서버의 성능 측정은 가능할지 몰라도, 애플리케이션 로직에 대한 부하 테스트는 불가능 한것으로 보인다.