Locust (logiciel)
Créateur | Jonatan Heyman |
---|---|
Développé par | Contributors to the Locust project |
Fichier exécutable | locust |
Première version | |
Dernière version | 2.16.1 () |
Dépôt | github.com/locustio/locust |
État du projet | en développement actif |
Écrit en | Python |
Type | Test de performance |
Licence | Licence MIT[1] |
Documentation | docs.locust.io/en/stable/ |
Site web | locust.io |
Locust est un projet de logiciel libre créé en 2011 par Jonatan Heyman permettant d'effectuer des tests de performance sur des applications et serveurs web[2].
Locust est écrit en Python, ce qui lui permet d'être utilisé sur tout système d'exploitation supportant ce langage.
Il permet de simuler le comportement de plusieurs utilisateurs agissant de manière simultanée sur une application Web. Cette charge peut être lancée depuis un seul processus, mais peut également être répartie sur plusieurs machines ou processus s'il est nécessaire de générer un trafic important[3].
Les scénarios sont également en Python et bénéficient donc l'ensemble de librairies fournies par ce langage et plus des fonctionnalités spécifique à Locust[4]. Ces dernières peuvent être étendues facilement grâce à des paquets pip proposé par la communauté.
Locust propose une interface web pour piloter le tir et afficher en temps réel les résultats des tests. Les statistiques mesurées comportent :
- Durée du test
- Cible
- Nom du scénario
- Pour chaque requêtes (qui peuvent être groupés dans le scénario) :
- Nombre de requêtes effectuées
- Nombre d'erreurs
- les temps de réponse : moyen, min, max, centiles (50e, 60e, 70e, 80e, 90e, 95e, 99e et 100e)
- Taille des données transférées,
- Nombre de requêtes / seconde,
- Nombre de erreurs / seconde,
- Graphiques en fonction du temp:
- Nombre total de requêtes / seconde et erreurs / seconde
- Temps de réponse : 50e (median) et 95e centiles
- Nombre d'utilisateurs : affichage de la rampe
- Résumé des erreurs et de la répartitions des requêtes
- Un onglet permet de suivre la charge des "workers" en mode distribué
- Un onglet permet d'exporter le rapports dans différents format : html, csv, ...
L'interface web peut également être modifiée au travers de scripts python, elle est également optionnelle et toutes les opérations peuvent être exécutées depuis la ligne de commande.
Protocoles
[modifier | modifier le code]Locust supporte les protocoles suivants :
Des plugins permettent d'ajouter les protocoles suivants[5] :
- Playwright
- WebSockets/SocketIO
- Selenium/Webdriver
- HTTP users that load html page resource
- Kafka
- Mqtt
Articles connexes
[modifier | modifier le code]Liens externes
[modifier | modifier le code]Références
[modifier | modifier le code]- « Changelog Highlights », locust.io (consulté le )
- Siddhant Shrivastava et Prapulla, « Comprehensive Review of Load Testing Tools », International Research Journal of Engineering and Technology, vol. 07, no 5, , p. 3393 (ISSN 2395-0056, lire en ligne, consulté le )
- « Distributed load generation — Locust 2.16.1 documentation », sur docs.locust.io (consulté le )
- (en) « Open source load testing tool review 2020 », sur k6.io (consulté le )
- (en) « Locust Plugins »