Tutoriel sur les tests de performances

test de charge

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 performances est de vérifier les performances d'un logiciel.

  • Vitesse – Détermine si l’application répond rapidement
  • Évolutivité – Détermine la charge utilisateur maximale que l'application logicielle peut gérer.
  • Stabilité – Détermine si l’application est stable sous des charges variables

Pourquoi faire des tests de performances ?

Les caractéristiques et fonctionnalités prises en charge par un système logiciel ne sont pas la seule préoccupation. Les performances d'une application logicielle, comme son temps de réponse, sa fiabilité, son utilisation des ressources et son évolutivité, sont importantes. L’objectif des tests de performances n’est pas de trouver des bugs mais d’éliminer les goulots d’étranglement des performances.

Les tests de performances sont effectués pour fournir aux parties prenantes des informations sur leur application en termes de vitesse, de stabilité et d'évolutivité. Plus important encore, les tests de performances révèlent ce qui doit être amélioré avant la mise sur le marché du produit. Sans tests de performances, le logiciel est susceptible de souffrir de problèmes tels que : un fonctionnement lent lorsque plusieurs utilisateurs l'utilisent simultanément.neogénéralement, des incohérences entre les différents operasystèmes de configuration et une faible convivialité.

Test de performance

Les tests de performances détermineront si leur logiciel répond aux exigences de vitesse, d’évolutivité et de stabilité sous les charges de travail attendues. Les applications lancées sur le marché avec des indicateurs de performances médiocres en raison de tests de performances inexistants ou médiocres sont susceptibles d'acquérir une mauvaise réputation et de ne pas atteindre les objectifs de vente attendus.

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 hours de temps d'arrêt chaque semaine. Considérant 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 de Google.com (19 août 13) coûterait au géant de la recherche autant que $ 545,000.

On estime que les entreprises ont perdu des ventes d'une valeur 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 y a des primariIl existe six types de tests de performances 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 – est fait pour s'assurer que le logiciel peut gérer la charge attendue sur une longue période de temps.
  • Tests de pointe – teste la réaction du logiciel aux pics soudains et importants de charge générés par les utilisateurs.
  • Tests de volume – Sous Tests de volume, grand numéro. de. Les données sont renseignées dans une base de données et le comportement global du système logiciel est surveillé. L'objectif est de vérifier les performances des applications logicielles sous différents volumes de bases de données.
  • Test d'évolutivité – L'objectif des tests d'évolutivité est de déterminer l'efficacité de l'application logicielle en termes de « mise à l'échelle » pour prendre en charge une augmentation de la charge utilisateur. Il permet de planifier l’ajout de capacité à votre système logiciel.

Problèmes de performances courants

La plupart des problèmes de performances concernent la vitesse, le temps de réponse, le temps de chargement et une mauvaise évolutivité. La vitesse est souvent l’un des attributs les plus importants d’une application. Une application qui s'exécute lentement perdra des utilisateurs potentiels. Les tests de performances garantissent qu'une application s'exécute suffisamment rapidement pour retenir l'attention et l'intérêt d'un utilisateur. Jetez un oeil à la suitewing liste des problèmes de performances courants et remarquez à quel point la vitesse est un facteur commun à beaucoup d’entre eux :

  • Temps de chargement long – Le temps de chargement est normalement le temps initial nécessaire au démarrage d’une application. Cela devrait généralement être réduit au minimum. Bien que certaines applications soient impossibles à charger en moins d'une minute, le temps de chargement doit si possible être maintenu en dessous de quelques secondes.
  • Mauvais temps de réponse – Le temps de réponse est le temps qu'il faut entre le moment où un utilisateur saisit des données dans l'application et celui où l'application génère une réponse à cette entrée. En général, cela devrait être très rapide. Encore une fois, si un utilisateur doit attendre trop longtemps, il perd tout intérêt.
  • 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 les performances globales du système. Il y a goulot d'étranglement lorsque des erreurs de codage ou des problèmes matériels entraînent une diminution du débit sous certaines charges. Les goulots d’étranglement sont souvent causés par une section de code défectueuse. La clé pour résoudre un problème de goulot d'étranglement est de trouver la section de code à l'origine du ralentissement et d'essayer de l'y résoudre. Les goulots d'étranglement sont généralement résolus soit en corrigeant les mauvais processus en cours d'exécution, soit en ajoutant du matériel supplémentaire. Quelques goulets d'étranglement courants en matière de performances
    • 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 un processus générique sur la façon d'effectuer des tests de performances

Processus de test de performances
Processus de test de performances

Étape 1) Identifiez votre environnement de test

Connaissez votre environnement de test physique, votre environnement de production et les outils de test disponibles. Comprendre details des configurations matérielles, logicielles et réseau utilisées pendant les tests avant de commencer le processus de test. Cela aidera les testeurs à créer des tests plus efficaces. Cela aidera également à identifier les défis possibles que les testeurs peuvent rencontrer au cours des procédures de tests de performances.

Étape 2) Identifier les critères d'acceptation des performances

Cela inclut les objectifs et les contraintes en matière de débit, de temps de réponse et d'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 des critères et des objectifs de performance, car souvent les spécifications du projet n'incluent pas une variété suffisamment large de critères de performance. Parfois, il n'y en a pas du tout. Lorsque cela est possible, trouver une application similaire à laquelle comparer est un bon moyen de définir des objectifs de performances.

Étape 3) Planifier et concevoir des tests de performances

Déterminez dans quelle mesure 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 une variété d'utilisateurs finaux, de planifier les données de tests de performances et de définir les mesures qui seront collectées.

Étape 4) Configuration de l'environnement de test

Préparez l'environnement de test avant l'exécution. Organisez également les outils et autres ressources.

É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, régler et retester

Consolider, analyser et partager les résultats des tests. Ensuite, ajustez et testez à nouveau pour voir s'il y a une amélioration ou une diminution des performances. Étant donné que les améliorations diminuent généralement à chaque nouveau test, arrêtez-vous lorsque le goulot d'étranglement est causé par le processeur. Vous pourrez alors 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 :

métriques de tests de performances

  • Utilisation du processeur – le temps que le processeur passe à exécuter desidle threads.
  • Utilisation de la mémoire – quantité de mémoire physique disponible pour les processus sur un ordinateur.
  • Temps de disque – durée pendant laquelle 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 – nombre d'octets alloués par un processus qui ne peuvent pas être partagés entre d'autres processus. Ceux-ci sont utilisés pour mesurer les fuites de mémoire et leur utilisation.
  • Mémoire engagée – quantité de mémoire virtuelle utilisée.
  • Pages mémoire/seconde – nombre de pages écrites ou lues sur le disque afin de résoudre les erreurs de page matérielles. Les défauts de page matériels se produisent lorsqu'un code ne provenant pas de l'ensemble de travail actuel est appelé ailleurs et récupéré à partir d'un disque.
  • Défauts de page/seconde – la vitesse globale à laquelle les pages de défauts sont traitées par le processeur. Cela se produit à nouveau lorsqu'un processus nécessite du code extérieur à son ensemble de travail.
  • Interruptions CPU par seconde – est avg. nombre d'interruptions matérielles qu'un processeur reçoit et traite chaque seconde.
  • Longueur de la file d'attente du disque – est avg. Non. 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 – longueur de la file d'attente des paquets de sortie en paquets. Tout dépassement de deux signifie qu’il faut mettre fin à un retard et à un goulot d’étranglement.
  • Nombre total d'octets du réseau par seconde : taux quels octets sont envoyés et reçus sur l'interface, y compris les caractères de trame.
  • Temps de réponse - délai entre le moment où un utilisateur saisit une demande et la réception du premier caractère de la réponse.
  • Débit - taux auquel un ordinateur ou un réseau reçoit des requêtes par seconde.
  • Quantité de connexion pooling - 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 a à voir avec le nombre de SQL instructions gérées par des données mises en cache au lieu d'E/S coûteuses operation. C’est un bon point de départ pour résoudre les problèmes de goulots d’étranglement.
  • Coups par seconde – le non. de hits 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 – sont surveillés pour déterminer quels temps d'attente peuvent être réduits en ce qui concerne la rapidité avec laquelle les données sont récupérées de la mémoire
  • Nombre de fils – La santé d’une application peut être mesurée par le non. des threads en cours d'exécution et actuellement actifs.
  • Collecte des ordures - Il s'agit de restituer la mémoire inutilisée au système. Collecte des ordures doit être surveillé pour en vérifier l’efficacité.

Exemple de cas de test de tests de performances

  • Cas de test 01 : Vérifiez que le temps de réponse ne dépasse pas 4 secondes lorsque 1000 utilisateurs accèdent simultanément au site Web.neousuellement.
  • 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émentneousuellement.
  • 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 dans des 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 performance, les termes vagues comme plage acceptable, charge lourde, etc. sont remplacés par des termes concrets. numbers. Les ingénieurs de performance les définissent numbers selon les exigences commerciales et le paysage technique de l’application.

Outils de tests de performances

Il existe une grande variété d’outils de test de performances disponibles sur le marché. L'outil que vous choisirez pour les tests dépendra de nombreux facteurs tels que les types de protocoles pris en charge, le coût de la licence, la configuration matérielle requise, la prise en charge de la plate-forme, etc. Vous trouverez ci-dessous une liste d'outils de test couramment utilisés.

  • BlazeMeter – est la seule plateforme de tests complète et continue du marché. Ce puissant outil de test de performances alimente des applications fiables. Les testeurs peuvent exploiter des fonctionnalités avancées telles que des services fictifs, des données de test synthétiques ainsi que des tests et une surveillance des API. Évolutif jusqu'à 2 millions d'utilisateurs.
  • HP LoadRunner - est l'outil de test de performances le plus populaire sur le marché aujourd'hui. Cet outil est capable de simuler des centaines de milliers d'utilisateurs, soumettant des applications à des charges réelles pour déterminer leur comportement sous les charges attendues. Coureur de charge présente un utilisateur virtuel generator qui simule les actions d'utilisateurs humains en direct.
  • Jmeter – l'un des principaux outils utilisés pour les tests de charge des serveurs Web et d'applications.

QFP

Les tests de performances sont toujours effectués uniquement pour les systèmes client-serveur. Cela signifie que toute application qui n'est pas basée sur un client-serveur architecture, ne doit pas nécessiter de tests de performances.

Par exemple, Microsoft La calculatrice n'est pas basée sur un client-serveur et n'exécute pas plusieurs utilisateurs ; il n'est donc pas candidat aux tests de performances.

Test de performance

Il est important de comprendre la différence entre les tests de performances et l’ingénierie des performances. Une compréhension est partagée ci-dessous :

Test de performance est une discipline concernée par tests et rapports les performances actuelles d’une application logicielle sous divers paramètres.

Ingénierie de la performance est le processus par lequel le logiciel est testé et réglé dans le but d'atteindre les performances requises. Ce processus vise à optimiser la caractéristique la plus importante des performances des applications, à savoir l'expérience utilisateur.

Historiquement, les tests et les réglages ont été des domaines distinctement distincts et souvent concurrents. Cependant, ces dernières années, plusieurs groupes de testeurs et de développeurs ont collaboré de manière indépendante pour créer des équipes de réglage. Parce que ces équipes ont rencontré un succès significatif, le concept consistant à coupler les tests de performances avec le réglage des performances s'est répandu, et nous l'appelons désormais ingénierie des performances.

Conclusion

In Génie logiciel, Des tests de performances sont nécessaires avant de commercialiser un produit logiciel. Il garantit la satisfaction du client et protège l'investissement d'un investisseur contre les défaillances du produit. Les coûts des tests de performances sont généralement plus que compensés par l’amélioration de la satisfaction, de la fidélité et de la rétention des clients.