La Apache JMeter es un software de código abierto, una aplicación 100% pura de Java diseñada para probar el comportamiento funcional y medir el rendimiento. Originalmente fue diseñada para probar aplicaciones web, pero desde entonces se ha expandido a otras funciones de prueba.
Apache JMeter puede ser utilizado para probar el rendimiento tanto en recursos estáticos como dinámicos, aplicaciones web dinámicas. Puede ser utilizado para simular una carga pesada en un servidor, grupo de servidores, red u objeto para probar su resistencia o analizar el rendimiento general bajo diferentes tipos de carga.
Las características de Apache JMeter incluyen:
- Capacidad para realizar pruebas de carga y rendimiento en muchos tipos diferentes de aplicaciones/servidores/protocolos:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- Servicios web SOAP / REST
- FTP
- Base de datos a través de JDBC
- LDAP
- Middleware orientado a mensajes (MOM) a través de JMS
- Maila - SMTP(S), POP3(S) e IMAP(S)
- Comandos nativos o scripts de shell
- TCP
- Objetos Java
- IDE de prueba completo que permite la grabación rápida de Planes de Prueba (desde navegadores o aplicaciones nativas), construcción y depuración.
- Modo CLI (Modo de línea de comandos (anteriormente llamado No GUI) / modo sin cabeza) para realizar pruebas de carga desde cualquier sistema operativo compatible con Java (Linux, Windows, Mac OSX, …)
- Un informe dinámico HTML completo y listo para presentar
- Fácil correlación a través de la capacidad de extraer datos de los formatos de respuesta más populares, HTML, JSON, XML o cualquier formato textual
- Completamente portátil y 100% pureza de Java.
- Marco de multi-hilo completo que permite muestreo concurrente por muchos hilos y muestreo simultáneo de diferentes funciones por grupos de hilos separados.
- Análisis y reproducción de resultados de prueba en caché y fuera de línea.
- Núcleo altamente extensible:
- Muestreadores plugables permiten capacidades de prueba ilimitadas.
- Muestreadores scriptables (lenguajes compatibles con JSR223 como Groovy y BeanShell)
- Se pueden elegir varias estadísticas de carga con temporizadores plugables.
- Análisis de datos y complementos de visualización permiten una gran extensibilidad así como personalización.
- Las funciones pueden ser utilizadas para proporcionar entrada dinámica a una prueba o proporcionar manipulación de datos.
- Fácil integración continua a través de bibliotecas de código abierto de terceros para Maven, Gradle y Jenkins.