Même le plus novice des propriétaires de sites Web a, à un moment ou à un autre, testé les performances de son site. Cependant, la plupart de ces tests se concentrent normalement sur la vitesse de chargement ou les indices d'expérience utilisateur.
Mais qu'en est-il des tests de charge?
Bien que la plupart des sites Web soient sujets à des niveaux de trafic qui sont généralement assez réguliers, il peut arriver que certains sites soient confrontés à de lourdes charges. Les boutiques en ligne ou même certains sites Web gouvernementaux en sont des exemples.
Si votre site Web connaît une augmentation inattendue du nombre de visiteurs sur une courte période, êtes-vous suffisamment bien équipé pour y faire face ?
Comprendre le test de charge
Qu'est-ce que le test de charge ?
Le test de charge compare un site Web pour voir comment il fonctionne sous diverses charges.
Par exemple, un test peut simuler un nombre croissant de visiteurs simultanés atterrissant sur votre site. Il enregistrera également la façon dont votre site les traite et les enregistre pour référence.
Quels types de «charge» sont testés?
Selon l'outil avec lequel vous choisissez de charger le test de votre site, chacun peut avoir des caractéristiques différentes. Le plus basique consistera simplement à simuler une charge toujours croissante et à s'arrêter lorsque votre site plante.
D'autres outils peuvent être capables de générer une charge simulée qui imite un comportement différent de l'utilisateur, comme effectuer des requêtes, changer de page ou charger d'autres fonctions. Certains peuvent même être en mesure de cartographier les flux logiques pour chaque scénario individuel.
Selon leur complexité, certains outils de test de charge peuvent être assez chers. Cependant, il existe des options moins chères sur le marché et certaines sont même gratuites. J'ai inclus un mélange de ces outils de test ci-dessous pour votre référence, y compris quelques options open source.
Comparaison rapide des outils de test de performance
1. Loadview by Dotcom Monitor
Site Web : https://www.loadview-testing.com/
Prix: à partir de 129 $/mois, essai gratuit disponible
Loadview est l'une des solutions les plus complètes disponibles sur le marché et repose aujourd'hui sur un modèle de service Cloud. Cela signifie que quel que soit le type de simulation dont vous avez besoin, vous ne payez que pour le service - il n'y a aucun investissement en matériel ou autre.
En ce qui concerne les fonctionnalités, Loadview offre une solution très complexe qui peut inclure n'importe quoi, des Tests de charge HTTP simples à une combinaison sophistiquée de votre choix. Il est capable de simuler des variables dynamiques et même une diversité de géolocalisation dans ses tests.
Astuce : Vous ne savez pas si LoadView vous convient ?
Planifiez un appel découverte (15 minutes) ou une démonstration gratuite (1 heure) avec LoadView. Leurs ingénieurs de performance vous guideront tout au long du processus de script et d'exécution > Planifiez une démo gratuite maintenant.
Fonctions de LoadView
- Tests derrière le pare-feu
- Traitement des variables dynamiques
- Graphiques détaillés des cascades
- Courbes d'essai de charge
2. K6 Cloud (anciennement Load Impact)
Site Web : https://k6.io/
Prix: à partir de 89$/mois
K6 est un outil de test de charge open source basé sur le Cloud qui est fourni en tant que service. L'une des choses qui rend cet outil intéressant est qu'il est tarifé sur un modèle d'utilisation variable, ce qui signifie que le coût d'entrée peut être relativement faible en fonction de vos besoins. Il est cependant principalement orienté pour les développeurs.
Outre les tests de charge, K6 propose également une surveillance des performances. Son côté test de charge est axé sur les charges élevées et peut gérer différents modes tels que les pointes, les tests de résistance et les courses d'endurance.
* K6 ne fonctionne pas dans les navigateurs ni dans NodeJS
Fonctions de K6
- API adaptées aux développeurs.
- Script en JavaScript
- Suivi des performances
3. Load Ninja
Site Web : https://loadninja.com/
Prix: à partir de 105$/mois
Load Ninja vous permet de tester la charge avec de vrais navigateurs basés sur des scripts enregistrés, puis aide à analyser les résultats de performance. L'utilisation de navigateurs réels à grande échelle démontre que cet outil permet de recréer un environnement plus réaliste et un résultat final pour les tests.
Les résultats peuvent être analysés en temps réel et grâce aux outils pratiques fournis par le système, votre temps de script peut être réduit jusqu'à 60%. Les applications internes peuvent également être testées, à la fois avec des adresses IP fixes basées sur un proxy ou votre propre plage d'adresses IP dynamiques (en utilisant une liste blanche).
Fonctions de Load Ninja
- Test sur des milliers de navigateurs réels
- Diagnostic des tests en temps réel
- Aperçu des performances des applications internes
4. LoadRunner de Micro Focus
Site Web : https://www.microfocus.com/
Prix: à partir de 0$
Avec un compte communautaire gratuit d'entrée de gamme qui prend en charge les tests de 50 utilisateurs virtuels, LoadRunner est disponible même pour les nouveaux propriétaires de sites Web. Cependant, si vous le faites passer à des niveaux élevés, le coût augmente de façon exponentielle.
Cette solution basée sur le Cloud offre également l'utilisation d'un environnement de développement intégré pour les tests unitaires. Il prend en charge un large éventail d'environnements d'application, notamment Web, Mobile, WebSockets, Citrix, Java, .NET et bien plus encore. Sachez que LoadRunner peut être assez complexe et a une courbe d'apprentissage abrupte.
Fonctions de MicroFocus
- Moteur d'auto-corrélation breveté
- Prise en charge de plus de 50 technologies et environnements d'application
- Reproduction de processus commerciaux réels à l'aide de scripts
5. Loader
Site Web : https://loader.io/
Prix: à partir de 0$
Par rapport à ce que nous avons montré jusqu'à présent, Loader est un outil beaucoup plus simple et plus basique. Son forfait gratuit prend en charge les tests de charge tenant jusqu'à 10,000 XNUMX utilisateurs virtuels, ce qui est suffisant pour la plupart des sites Web à trafic modéré.
Malheureusement, vous aurez besoin d'un forfait payant pour accéder à des fonctionnalités plus avancées telles que des analyses avancées, des tests simultanés et une assistance prioritaire. Cependant, il est facile d'utilisation puisque vous ajoutez simplement votre site, spécifiez les paramètres, puis laissez le test s'exécuter.
Fonctions
- Graphiques et statistiques partageables
- Utilisable dans un format GUI ou API
- Prise en charge de la vérification DNS et des chargeurs prioritaires
6.Gatling
Site Web : https://gatling.io/
Prix: à partir de 0$
Gatling est disponible en deux versions, Open Source ou Enterprise. Le premier vous permet de tester la charge en tant qu'intégration avec votre propre pipeline de développement. Il comprend à la fois un enregistreur Web et un générateur de rapports dans son forfait. La version Entreprise a des déploiements sur site ou vous pouvez opter pour une version Cloud basée sur Amazon Web Services (AWS).
Bien que ces deux versions soient riches en fonctionnalités, la version Enterprise prend en charge quelques extras qui ne sont pas fournis avec Open Source. Par exemple, il a une interface de gestion plus utilisable et prend en charge un plus large éventail d'intégrations.
Fonctions
- Script multi-protocoles
- Tests et débit illimités
- DSL de script Gatling
7. The Grinder
Site Web : https://sourceforge.net/projects/grinder/
Prix: à partir de 0$
Grinder est open source tout le long et est probablement la seule option vraiment gratuite sur cette liste. Il doit toutefois être exécuté localement dans votre propre environnement de développement et nécessite quelques éléments supplémentaires tels que Java pour fonctionner.
Du fait qu'il est open source, il a été largement adopté et les développeurs ont proposé un grand nombre de plugins qui l'étendent considérablement en termes de capacité d'utilisation et de fonctionnalité. En revanche, à moins que vous ne soyez un développeur ou bien habile en informatique, The Grinder pourrait être un peu difficile à utiliser.
Fonctions
- Scripting flexible basé sur Jython et Clojure
- Hautement modulable avec des tonnes de plugins
- Framework distribué et support HTTP développé
Quand effectuer un test de charge sur les performances de votre site Web?
Si vous avez jeté un œil à la plupart des outils disponibles, vous aurez probablement remarqué que beaucoup d'entre eux proposent soit des comptes d'essai, soit une forme de version gratuite limitée. Cela les rend facilement disponibles pour une utilisation auprès d'un large public.
La plupart des propriétaires de sites Web doivent se préoccuper des performances du serveur d'hébergement car elles affectent bien plus que simplement l'expérience utilisateur. Pour de nombreux propriétaires d'entreprise, la disponibilité de votre site Web est également une question de réputation de la marque.
Les sites en croissance doivent être particulièrement prudents quant à la disponibilité et l’évolutivité des ressources utilisées pour l'hébergement de votre site web. Dans la plupart des cas, un pourcentage élevé du temps de réponse des utilisateurs est consacré à la surface de votre site. Cependant, à mesure que les sites augmentent en volume de trafic, cela peut changer.
Plus de trafic signifie généralement une croissance disproportionnée du traitement du backend et votre système aura du mal à augmenter. Beaucoup dépendra de variables propres au développement de votre site, il n'est donc pas possible de vous donner un nombre solide de visiteurs pour justifier à quel moment cela se produira.
Pour voir de manière réaliste les performances de votre site, vous devez effectuer des tests de charge. Le moment exact de le faire est discutable, mais mon conseil serait de planifier à l'avance et d'effectuer des tests assez tôt.
Que vérifier lors d'un test de charge?
Comme son nom l'indique, votre fonction principale devrait être la base de la performance de votre site sous des charges. Cela vous permettra d'observer un certain nombre de choses, du genre:
- À quel moment les performances de votre site commencent à se dégrader
- Ce qu'il se passe réellement lorsque le service se dégrade
Lorsque j'ai mentionné comment différents sites peuvent réagir différemment en fonction de leur architecture, c'était un signal destiné à vous faire comprendre que tous les sites n'échouent pas de la même manière. Certains sites à forte intensité de données pourraient échouer sur ce point, tandis que d'autres peuvent souffrir de défaillances d'Entrées / Sorties basées sur les charges de connexion au serveur.
Pour cette raison, vous devez être prêt à configurer une variété de tests pour comprendre comment votre site et votre serveur se comporteront dans divers scénarios. Sur la base de ceux-ci, surveillez de près quelques mesures clés telles que le temps de réponse de votre serveur, le nombre d'erreurs produises et les zones dans lesquelles ces erreurs peuvent se trouver.
La génération de scripts complexes et d'exécutions avec la logique qui l'accompagne peut être difficile. Je suggère que vous abordiez le test de charge progressivement. Commencez par un test de force brute qui testera simplement votre site sous un flux de trafic en constante augmentation.
Au fur et à mesure que vous acquérez de l'expérience, ajoutez d'autres éléments tels que le comportement variable, le développement de vos scripts et de votre logique au fil du temps.
Outils de test de charge - Certains valent mieux qu'aucun
En ce qui concerne les tests de charge, il vaut mieux commencer par les bases que de ne pas commencer du tout. Si vous êtes un débutant dans tout cela, essayez de faire vos tests sur un miroir alternatif ou hors ligne si possible - évitez de tester en charge un site en direct si vous le pouvez!
Si vous débutez maintenant, assurez-vous de créer un enregistrement de vos tests. Le Test de performance est un parcours qui doit accompagner le développement de votre site au fur et à mesure de sa croissance. Le processus peut être fatigant, mais n'oubliez pas que le fait de ne pas avoir de rapport peut rendre les évaluations futures beaucoup plus difficiles pour vous.