L'application Apache JMeter est un logiciel open source, une application 100 % Java conçue pour tester la charge du comportement fonctionnel et mesurer les performances. Elle a été initialement conçue pour tester des applications Web mais s'est depuis étendue à d'autres fonctions de test.
Apache JMeter peut être utilisé pour tester les performances à la fois sur des ressources statiques et dynamiques, des applications Web dynamiques. Il peut être utilisé pour simuler une charge lourde sur un serveur, un groupe de serveurs, un réseau ou un objet pour tester sa résistance ou analyser les performances globales sous différents types de charge.
Les fonctionnalités d'Apache JMeter incluent :
- Capacité à tester la charge et les performances de nombreux types d'applications/serveurs/protocoles différents :
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- Services Web SOAP / REST
- FTP
- Base de données via JDBC
- LDAP
- Middleware orienté message (MOM) via JMS
- Maila - SMTP(S), POP3(S) et IMAP(S)
- Commandes natives ou scripts shell
- TCP
- Objets Java
- IDE de test complet qui permet un enregistrement rapide du plan de test (depuis les navigateurs ou les applications natives), la construction et le débogage.
- Mode CLI (mode ligne de commande (précédemment appelé Non GUI) / mode sans tête) pour tester la charge depuis n'importe quel système d'exploitation compatible Java (Linux, Windows, Mac OSX, …)
- Un rapport dynamique complet et prêt à présenter en HTML
- Corrélation facile grâce à la capacité d'extraire des données des formats de réponse les plus populaires, HTML, JSON, XML ou tout format textuel
- Portabilité complète et pureté 100 % Java.
- Cadre de multi-threading complet permettant un échantillonnage concurrent par de nombreux threads et un échantillonnage simultané de différentes fonctions par des groupes de threads séparés.
- Mise en cache et analyse hors ligne/relecture des résultats de test.
- Noyau hautement extensible :
- Échantillonneurs plugables permettant des capacités de test illimitées.
- Échantillonneurs scriptables (langages compatibles JSR223 comme Groovy et BeanShell)
- Plusieurs statistiques de charge peuvent être choisies avec des temporisateurs plugables.
- Plugins d'analyse et de visualisation des données permettant une grande extensibilité ainsi qu'une personnalisation.
- Des fonctions peuvent être utilisées pour fournir une entrée dynamique à un test ou fournir une manipulation de données.
- Intégration continue facile grâce à des bibliothèques open source tierces pour Maven, Gradle et Jenkins.