Vegeta (logiciel)

Un article de Wikipédia, l'encyclopédie libre.
Vegeta

Description de l'image Vegeta attack example.png.
Informations
Dernière version 12.11.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/tsenart/vegetaVoir et modifier les données sur Wikidata
Écrit en GoVoir et modifier les données sur Wikidata
Licence Licence MITVoir et modifier les données sur Wikidata
Site web pkg.go.dev/github.com/tsenart/vegeta/lib?utm_source=godocVoir et modifier les données sur Wikidata

Vegeta est un outil HTTP de test de charge écrit en Go, utilisable en tant que commande dans une interface en ligne de commande ou comme bibliothèque logicielle[2]. Le programme effectue des tests sur le comportement d'une application HTTP lorsque plusieurs utilisateurs s'y connectent en même temps[2] par le biais d'un chargement en arrière-plan de requêtes GET[3]. Vegeta est utilisé pour générer un nombre constant de requêtes par seconde afin de savoir combien de temps un service peut maintenir une charge à son maximum avant que sa performance s'effondre[4].

En plus du test de charge préventif, le programme peut également être sollicité pour du shadow testing[5], une méthode d'essai où la fréquentation de la version live d'une application est dupliquée dans une version test. L'objectif est de déterminer le moyen de gérer la même charge de personnes connectées, sans porter préjudice à la version live de l'application[6]. Ce processus est réalisé ainsi dans le but d'analyser la performance escomptée du serveur[7].

Vegeta est disponible à l'utilisation par des services d'hébergement Internet comme Scaleway[2] pour utiliser des requêtes diverses et variées permettant d'effectuer un test de résistance sur des services de client HTTP[8]. Il est aussi utilisé avec des services de plateformes dédiés au test de charge comme BlazeMeter[9].

Utilisation[modifier | modifier le code]

L'utilisation de la ligne de commande correspond à vegeta [global flags] <command> [command flags]. Les trois options principales sont -cpus int, qui spécifie le nombre de processeurs à utiliser, -profile string, qui active le profilage, et -version, qui affiche la version logicielle avant de quitter le programme[10].

Les commandes disponibles sont attack, encode, plot, et report, chacune possédant leurs propres options de commande. L'entrée attack et la sortie report peuvent être toutes deux réalisées dans un format optionnel json lorsqu'elles sont spécifiées avec l'option appropriée[10].

Vegeta peut spécifier des URL comme cibles dans un fichier séparé avec des en-têtes et des requêtes optionnelles, des options pouvant être saisies sur la ligne de commande par la suite[11].

Exemple[modifier | modifier le code]

Par exemple, une utilisation possible serait de taper "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report dans la ligne de commande[10]. Cet exemple utilise la commande echo pour obtenir la sortie GET http://localhost/, puis exécute la commande attack pour cette dernière pendant cinq secondes. Après cela, la commande tee est sollicitée dans le but d'obtenir les résultats dans un fichier appelé results.bin avant de lancer la commande report afin d'afficher la sortie des résultats d'attack.

Sources[modifier | modifier le code]

  1. « Release v12.11.1 »
  2. a b et c « Load Testing with Vegeta » [archive du ], sur Scaleway, (consulté le )
  3. Andreas Eiermann, Mathias Renner, Marcel Großmann et Udo R. Krieger, Innovations for community services : 17th International Conference, I4CS 2017, Darmstadt, Germany, June 26-28, 2017, Proceedings, Cham, Switzerland, , 83 p. (ISBN 978-3-319-60447-3, OCLC 990058133, lire en ligne), « On a Fog Computing Platform Built on ARM Architectures »
  4. Brajesh De, API management : an architect's guide to developing and managing APIs for your organization, New York, , First éd., 161 p. (ISBN 978-1-4842-1305-6, OCLC 978273106, lire en ligne [archive du ])
  5. Nat Welch, Real-world SRE : the survival guide for responding to a system outage and maximizing uptime, Birmingham, UK, Packt, , 137 p. (ISBN 978-1-78862-644-6, OCLC 1056157467, lire en ligne)
  6. « Application deployment and testing strategies », sur Google Cloud, (consulté le )
  7. Lin Qi, Zhihong Qiao, Aowei Zhang, Hui Qi, Weiwu Ren, Xiaoqiang Di et Rui Wang, Mobile wireless middleware, operating systems and applications : 9th EAI International Conference, MOBILWARE 2020, Hohhot, China, July 11, 2020, Proceedings, Cham, Switzerland, , 70 p. (ISBN 978-3-030-62205-3, OCLC 1225562925, lire en ligne [archive du ]), « Performance Analysis of QUIC-UDP Protocol Under High Load »
  8. Sorin Dumitrescu, « Black Friday. 0 downtime. How Bunnyshell & Vegeta & UiPath can help » [archive du ], sur BunnyShell.com, (consulté le )
  9. Alla Levental, « Vegeta Load Testing » [archive du ], sur BlazeMeter, (consulté le )
  10. a b et c Tomás Senart, « GitHub - tsenart/vegeta: HTTP load testing tool and library. It's over 9000! » [archive du ], sur GitHub, (consulté le ).
  11. Paul Osman, Microservices development cookbook : design and build independently deployable, modular services, Birmingham, UK, Packt, , 210 p. (ISBN 978-1-78847-636-2, OCLC 1055162428, lire en ligne [archive du ])