Tutoriel sur les tests de performances
⚡ Résumé intelligent
Les tests de performance sont un processus de test logiciel qui évalue la vitesse, le temps de réponse, la stabilité, l'évolutivité et l'utilisation des ressources d'une application sous des charges de travail spécifiques. Ils permettent d'identifier et d'éliminer les goulots d'étranglement avant le déploiement, garantissant ainsi la fiabilité en conditions réelles d'utilisation.

Qu'est-ce que les tests de performances ?
Test de performance est un processus de test de logiciels utilisé pour tester la vitesse, le temps de réponse, la stabilité, la fiabilité, l'évolutivité et l'utilisation des ressources d'une application logicielle sous une charge de travail particulière. L’objectif principal des tests de performances est d’identifier et d’éliminer les goulots d’étranglement des performances de l’application logicielle. Il s'agit d'un sous-ensemble de l'ingénierie des performances et est également connu sous le nom de « Tests de performances ».
L'objectif des tests de performance est de vérifier les caractéristiques suivantes d'un logiciel :
- Speed – Détermine si l’application répond rapidement
- Évolutivité – Détermine la charge utilisateur maximale que l'application logicielle peut supporter
- Stabilité – Détermine si l’application est stable sous des charges variables
PFLB se spécialise dans les tests de performance de haute précision, garantissant la stabilité des systèmes face à des charges de travail imprévisibles. Ses services couvrent les tests de charge, les tests de pics de charge et la mesure de la latence, avec un accent particulier sur la détection des dégradations de performance avant qu'elles n'affectent les utilisateurs finaux.
Pourquoi les tests de performances sont-ils importants ?
Les fonctionnalités d'un système logiciel ne sont pas le seul critère à prendre en compte. Les performances d'une application, telles que son temps de réponse, sa fiabilité, son utilisation des ressources et son évolutivité, sont tout aussi importantes. L'objectif des tests de performance n'est pas de détecter les bogues, mais d'éliminer les goulots d'étranglement.
Les tests de performance permettent de fournir aux parties prenantes des informations sur la vitesse, la stabilité et l'évolutivité de leur application. Plus important encore, ils révèlent les points à améliorer avant la commercialisation du produit. Sans ces tests, le logiciel risque de présenter des problèmes tels que des ralentissements lors d'une utilisation simultanée par plusieurs utilisateurs, des incohérences entre les systèmes d'exploitation et une ergonomie médiocre.
Les tests de performance permettent de vérifier si un logiciel répond aux exigences de vitesse, d'évolutivité et de stabilité sous les charges de travail prévues. Les applications commercialisées avec des performances médiocres, en raison de tests inexistants ou insuffisants, risquent de se forger une mauvaise réputation et de ne pas atteindre leurs objectifs de vente.
Aussi, les applications critiques comme les programmes de lancement spatial ou les équipements médicaux de sauvetage, leurs performances doivent être testées pour garantir qu'ils fonctionnent pendant une longue période sans écarts.
Selon Dunn & Bradstreet, 59 % des entreprises Fortune 500 connaissent environ 1.6 heure d'indisponibilité chaque semaine. Si l'on considère qu'une entreprise moyenne du classement Fortune 500 comptant au moins 10,000 56 employés paie 896,000 dollars de l'heure, la part de main-d'œuvre dans les coûts d'indisponibilité d'une telle organisation serait de 46 dollars par semaine, soit plus de millions de dollars par an.
Seule une Temps d'arrêt de 5 minutes of GoogleOn estime que le .com (19 août 13) coûtera au géant de la recherche jusqu'à [montant manquant]. $ 545,000.
On estime que les entreprises ont perdu des ventes d'une valeur de 1100 $ par seconde en raison d'un récent Amazon Panne du service Web.
Les tests de performances sont donc importants. Pour vous aider dans cette démarche, consultez cette liste de outils de test de performances.
Types de tests de performance
Il existe principalement six types de tests de performance dans les tests logiciels, qui sont expliqués ci-dessous.
- Test de charge – vérifie la capacité de l'application à fonctionner sous les charges utilisateur anticipées. L’objectif est d’identifier les goulots d’étranglement en matière de performances avant la mise en ligne de l’application logicielle.
- Tests de résistance - implique de tester une application sous des charges de travail extrêmes pour voir comment elle gère un trafic ou un traitement de données élevé. L’objectif est d’identifier le point de rupture d’une application.
- Tests d'endurance – Ce test permet de s'assurer que le logiciel peut supporter la charge prévue sur une longue période. Il contribue à détecter les problèmes tels que les fuites de mémoire et l'épuisement des ressources, qui n'apparaissent que lors d'un fonctionnement prolongé.
- Tests de pointe – Ce test évalue la réaction du logiciel face à des pics de charge soudains et importants générés par les utilisateurs. Contrairement aux tests de charge, les tests de pics de charge se concentrent spécifiquement sur la manière dont le système gère et récupère de pics de trafic brefs et soudains.
- Test de volume – Cela implique d'alimenter une base de données avec un volume important de données et de surveiller le comportement global du système logiciel. L'objectif est de vérifier les performances de l'application logicielle en fonction du volume de données de la base.
- Tests d'évolutivité – Elle détermine la capacité de l'application logicielle à s'adapter à une augmentation du nombre d'utilisateurs. Elle permet de planifier l'ajout de capacité à votre système logiciel.
Problèmes de performances courants
La plupart des problèmes de performance sont liés à la vitesse, au temps de réponse, au temps de chargement et à une mauvaise scalabilité. La vitesse est souvent l'un des atouts les plus importants d'une application. Une application lente risque de perdre des utilisateurs potentiels. Les tests de performance garantissent qu'une application est suffisamment rapide pour maintenir l'attention et l'intérêt des utilisateurs. Voici quelques problèmes de performance courants où la vitesse est un facteur récurrent :
- Temps de chargement long – Le temps de chargement correspond généralement au temps initial nécessaire au démarrage d'une application. Il convient de le réduire au minimum. Bien que certaines applications ne puissent pas se charger en moins d'une minute, le temps de chargement doit, si possible, être inférieur à quelques secondes.
- Mauvais temps de réponse – Le temps de réponse correspond au délai entre la saisie de données par un utilisateur dans l'application et l'affichage d'une réponse à cette saisie. En général, ce temps doit être très court. Si l'attente est trop longue, l'utilisateur se désintéresse.
- Mauvaise évolutivité – Un produit logiciel souffre d’une faible évolutivité lorsqu’il ne peut pas gérer le nombre d’utilisateurs attendu ou lorsqu’il ne s’adapte pas à un éventail d’utilisateurs suffisamment large. test de charge doit être fait pour être certain que l'application peut gérer le nombre d'utilisateurs prévu.
- Goulots d’étranglement – Les goulots d'étranglement sont des obstacles dans un système qui dégradent ses performances globales. Un goulot d'étranglement se produit lorsque des erreurs de codage ou des problèmes matériels entraînent une baisse de débit sous certaines charges. Il est souvent causé par une section de code défectueuse. La clé pour résoudre un problème de goulot d'étranglement est d'identifier la section de code responsable du ralentissement et de la corriger à cet endroit. La résolution d'un goulot d'étranglement passe généralement par l'optimisation des processus lents ou l'ajout de matériel. goulets d'étranglement courants en matière de performances sont:
- Utilisation de l'UC
- Utilisation de la mémoire
- L'utilisation du réseau
- OperaLimitations du système
- Utilisation du disque
Comment effectuer des tests de performances
La méthodologie adoptée pour les tests de performances peut varier considérablement, mais l'objectif des tests de performances reste le même. Cela peut aider à démontrer que votre système logiciel répond à certains critères de performances prédéfinis. Cela peut également aider à comparer les performances de deux systèmes logiciels. Cela peut également aider à identifier les parties de votre système logiciel qui dégradent ses performances.
Vous trouverez ci-dessous une procédure générique pour effectuer des tests de performance.

Étape 1) Identifiez votre environnement de test
Familiarisez-vous avec votre environnement de test physique, votre environnement de production et les outils de test disponibles. Avant de commencer les tests, comprenez en détail les configurations matérielles, logicielles et réseau utilisées. Cela permettra aux testeurs de créer des tests plus efficaces et d'identifier les éventuels problèmes qu'ils pourraient rencontrer lors des tests de performance.
Étape 2) Identifier les critères d'acceptation des performances
Cela inclut les objectifs et les contraintes liés au débit, aux temps de réponse et à l'allocation des ressources. Il est également nécessaire d'identifier les critères de réussite du projet en dehors de ces objectifs et contraintes. Les testeurs doivent être habilités à définir les critères et les objectifs de performance, car les spécifications du projet n'incluent souvent pas une variété suffisante de points de référence. Parfois, il peut même n'y en avoir aucun. Lorsque cela est possible, trouver une application similaire à laquelle se comparer est une bonne méthode pour définir les objectifs de performance.
Étape 3) Planifier et concevoir des tests de performances
Déterminez comment l'utilisation est susceptible de varier selon les utilisateurs finaux et identifiez les scénarios clés à tester pour tous les cas d'utilisation possibles. Il est nécessaire de simuler différents utilisateurs finaux, de planifier les données de test de performance et de définir les indicateurs à collecter.
Étape 4) Configurer l'environnement de test
Préparez l'environnement de test avant l'exécution. Organisez également les outils et autres ressources nécessaires. Reproduisez au mieux l'environnement de production afin de garantir des résultats de test réalistes et exploitables.
Étape 5) Mettre en œuvre la conception des tests
Créez les tests de performances en fonction de votre conception de test.
Étape 6) Exécutez les tests
Exécuter et surveiller les tests.
Étape 7) Analyser, optimiser et tester à nouveau
Consolidez, analysez et partagez les résultats des tests. Procédez ensuite à des réglages précis et à de nouveaux tests pour évaluer l'évolution des performances. Les améliorations étant généralement moins importantes à chaque nouveau test, arrêtez-vous dès que le goulot d'étranglement est dû au processeur. Dans ce cas, il faudra peut-être envisager d'augmenter la puissance du processeur.
Métriques de test de performances : paramètres surveillés
Les paramètres de base surveillés lors des tests de performances comprennent :
- Utilisation du processeur – le temps que le processeur consacre à l'exécution de threads non inactifs.
- Utilisation de la mémoire – la quantité de mémoire physique disponible pour les processus sur un ordinateur.
- Temps de disque – le temps pendant lequel le disque est occupé à exécuter une requête de lecture ou d'écriture.
- Bande passante - affiche les bits par seconde utilisés par une interface réseau.
- Octets privés – Le nombre d'octets alloués à un processus et non partageables avec d'autres processus. Ces données servent à mesurer les fuites de mémoire et l'utilisation de la mémoire.
- Mémoire engagée – la quantité de mémoire virtuelle utilisée.
- Pages mémoire/seconde – Le nombre de pages écrites ou lues sur le disque pour résoudre les défauts de page matériels. Ces défauts surviennent lorsque du code n'appartenant pas à l'ensemble de travail courant est appelé et récupéré sur le disque.
- Défauts de page/seconde – Le taux global de traitement des pages d'erreur par le processeur. Cela se produit lorsqu'un processus a besoin de code situé en dehors de son ensemble de travail.
- Interruptions CPU par seconde – le nombre moyen d'interruptions matérielles qu'un processeur reçoit et traite chaque seconde.
- Longueur de la file d'attente du disque – le nombre moyen de requêtes de lecture et d'écriture mises en file d'attente pour le disque sélectionné pendant un intervalle d'échantillonnage.
- Longueur de la file d'attente de sortie réseau – La longueur de la file d'attente des paquets de sortie, exprimée en paquets. Une valeur supérieure à deux indique un délai, et il est nécessaire d'éliminer ce goulot d'étranglement.
- Nombre total d'octets du réseau par seconde : le débit auquel les octets sont envoyés et reçus sur l'interface, y compris les caractères de cadrage.
- Temps de réponse - Le temps écoulé entre le moment où un utilisateur saisit une requête et la réception du premier caractère de la réponse.
- Débit - Le taux auquel un ordinateur ou un réseau reçoit des requêtes par seconde.
- Quantité de pool de connexions – le nombre de demandes d'utilisateurs satisfaites par les connexions groupées. Plus les connexions du pool répondent à des requêtes, meilleures seront les performances.
- Sessions actives maximales – le nombre maximum de sessions pouvant être actives à la fois.
- Taux de réussite – cela concerne le nombre de SQL des instructions qui sont gérées par des données mises en cache au lieu d'opérations d'E/S coûteuses. C’est un bon point de départ pour résoudre les problèmes de goulots d’étranglement.
- Coups par seconde – Le nombre de requêtes sur un serveur web pendant chaque seconde d'un test de charge.
- Segment de restauration – la quantité de données qui peuvent être restaurées à tout moment.
- Verrous de base de données – le verrouillage des tables et des bases de données doit être surveillé et soigneusement réglé.
- Meilleures attentes – Un suivi est effectué afin de déterminer quels temps d'attente peuvent être réduits en fonction de la vitesse de récupération des données en mémoire.
- Nombre de fils – L'état de santé d'une application peut être mesuré par le nombre de threads en cours d'exécution et actuellement actifs.
- Collecte des ordures - Cela implique de restituer au système la mémoire inutilisée. L'efficacité du ramasse-miettes doit être surveillée.
Exemple de cas de test de tests de performances
Vous trouverez ci-dessous des exemples de cas de tests de performance :
- Cas de test 01 : Vérifier que le temps de réponse ne dépasse pas 4 secondes lorsque 1000 utilisateurs accèdent simultanément au site web.
- Cas de test 02 : Vérifiez que le temps de réponse de l'application sous charge se situe dans une plage acceptable lorsque la connectivité réseau est lente.
- Cas de test 03 : Vérifiez le nombre maximum d'utilisateurs que l'application peut gérer avant qu'elle ne plante.
- Cas de test 04 : Vérifiez le temps d'exécution de la base de données lorsque 500 enregistrements sont lus/écrits simultanément.
- Cas de test 05 : Vérifiez l'utilisation du processeur et de la mémoire de l'application et du serveur de base de données en conditions de charge maximale.
- Cas de test 06 : Vérifiez le temps de réponse de l'application dans des conditions de charge faible, normale, modérée et élevée.
Lors de l'exécution réelle des tests de performances, des termes vagues comme plage acceptable, charge lourde, etc. sont remplacés par des chiffres concrets. Les ingénieurs de performance définissent ces chiffres en fonction des exigences commerciales et du paysage technique de l'application.
Meilleures pratiques en matière de tests de performance
Le respect des bonnes pratiques établies garantit la fiabilité des résultats des tests de performance. Ces recommandations aident les équipes à éviter les pièges courants.
- Reproduire l'environnement de production – Configurez votre environnement de test pour qu'il reflète au mieux l'environnement de production. Des différences de versions matérielles ou logicielles peuvent fausser les résultats.
- Concevoir des scénarios de test réalistes – Créez des cas de test qui simulent le comportement réel des utilisateurs, y compris les temps de réflexion et les combinaisons de transactions simultanées.
- Utiliser des indicateurs basés sur les percentiles – Fiez-vous aux temps de réponse correspondant aux 90e et 95e percentiles plutôt qu'aux moyennes seules. Les percentiles révèlent les latences en fin de chaîne que les moyennes peuvent masquer.
- Tester tôt et en continu – Intégrez les tests de performance dans le pipeline CI/CD plutôt que de les considérer comme une activité de dernière étape.
- Documentation et résultats de référence – Consignez les résultats de chaque test. La comparaison des nouveaux résultats avec les valeurs de référence facilite la détection des régressions entre les versions.
Comment l'IA transforme les tests de performance
L'intelligence artificielle est en train de remodelerping L’évaluation des performances passe par l’automatisation de tâches d’analyse complexes et l’activation de capacités prédictives. Les outils basés sur l’IA analysent les données historiques, détectent les tendances et fournissent des recommandations exploitables sans nécessiter d’intervention humaine à chaque étape.
- Détection prédictive des anomalies – Les algorithmes d'IA analysent les indicateurs de performance en temps réel lors des tests de charge et signalent les anomalies avant qu'elles ne dégénèrent en défaillances critiques.
- Analyse automatisée des causes profondes – Les outils basés sur l'IA mettent en corrélation les données de systèmes distribués afin d'identifier précisément les composants à l'origine de la dégradation des performances.
- Optimisation intelligente des tests – Les modèles d'apprentissage automatique identifient les scénarios de test redondants et suggèrent des configurations optimales, réduisant ainsi le temps d'exécution tout en maintenant la couverture.
- Scripts de test auto-réparateurs – L'IA adapte les scripts de test lorsque les interfaces d'application changent, réduisant ainsi les coûts de maintenance des suites de tests de performance.
Outils de test de performance
Il existe une grande variété d'outils de test de performance sur le marché. Le choix de l'outil dépendra de nombreux facteurs, tels que les protocoles pris en charge, le coût de la licence, la configuration matérielle requise et la compatibilité avec différentes plateformes. Vous trouverez ci-dessous une liste des outils de test les plus utilisés.
- HP LoadRunner - est l'un des outils de test de performance les plus populaires du marché. Il permet de simuler des centaines de milliers d'utilisateurs, soumettant ainsi les applications à des charges réelles afin de déterminer leur comportement sous les charges attendues. LoadRunner dispose d'un générateur d'utilisateurs virtuels qui simule les actions d'utilisateurs humains en direct.
- JMeter - L'un des principaux outils open source utilisés pour les tests de charge des serveurs web et d'applications. Il prend en charge de nombreux protocoles et offre des fonctionnalités de reporting complètes.


