Apache JMeter 는 웹어플리케이션 성능 테스트를 위해 부하를 발생하고 성능 지표를 제공하기 위해 만들기 시작하였고, 날이 갈수록 기능을 더 확장하여 지금은 다른 테스트 기능들도 수행한다.
Apache JMeter 는 정적과 동적인 자원 모두 성능 테스트할 때 사용할 수 있으며 네트워크를 통한 서버, 서버 그룹들에 꽤나 큰 부하를 흘려볼 수 있기도하고 다른 종류의 부하를 사용하여 성능을 분석할 수도 있다.
Apache JMeter 기능들을 나열해보면 아래와 같다.
- 어플리케이션 / 서버 / 프로토콜 별 부하와 성능 테스트 지원:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
- 테스트 기록 recording(브라우저 or 어플리케이션), building, debugging 지원
- OS 에 독립적인 cli mode 지원 (Java 만 있으면 실행 가능)
- HTML 로 report 제공 가능
- 다양한 response 포맷 지원 (HTML, JSON, XML, any textual format)
- 멀티 쓰레딩 리퀘스트 지원
- Highly Extensible core:
- Pluggable Samplers allow unlimited testing capabilities.
- Scriptable Samplers (JSR223-compatible languages like Groovy and BeanShell)
- Several load statistics may be chosen with pluggable timers.
- Data analysis and visualization plugins allow great extensibility as well as personalization.
- Functions can be used to provide dynamic input to a test or provide data manipulation.
- Easy Continuous Integration through 3rd party Open Source libraries for Maven, Gradle and Jenkins.