Qu’est-ce que le test de charge ? (Exemples)

test de charge

Qu'est-ce que le test de charge ?

test de charge est un processus de test logiciel non fonctionnel dans lequel les performances d'une application logicielle sont testées sous une charge attendue spécifique. Il détermine le comportement de l'application logicielle lorsqu'elle est accessible simultanément par plusieurs utilisateurs. L’objectif des tests de charge est d’améliorer les goulots d’étranglement des performances et de garantir la stabilité et le bon fonctionnement de l’application logicielle avant le déploiement.

Ce test identifie généralement –

  • La capacité opérationnelle maximale d’une application
  • Déterminer si l'infrastructure actuelle est suffisante pour exécuter l'application
  • Durabilité de l’application par rapport à la charge maximale d’utilisateurs
  • Nombre d'utilisateurs simultanés qu'une application peut prendre en charge et évolutivité pour permettre à davantage d'utilisateurs d'y accéder.

C'est un type de test non fonctionnel. En génie logiciel, les tests de charge sont couramment utilisés pour les applications Web client/serveur – à la fois sur Intranet et sur Internet.

Besoin de tests de charge

Certains sites extrêmement populaires ont subi de graves temps d’arrêt lorsqu’ils reçoivent des volumes de trafic massifs. Les sites de commerce électronique investissent massivement dans les campagnes publicitaires, mais pas dans les tests de charge pour garantir des performances optimales du système, lorsque ce marketing génère du trafic.

Considérez les exemples de tests de charge suivants

  • Le magasin de jouets populaire Toysrus.com n'a pas pu gérer l'augmentation du trafic généré par sa campagne publicitaire, ce qui a entraîné une perte à la fois de dollars de marketing et de ventes potentielles de jouets.
  • Le site Web d'une compagnie aérienne n'était pas en mesure de gérer plus de 10000 utilisateurs lors d'une offre de festival.
  • L'Encyclopedia Britannica a déclaré l'accès gratuit à sa base de données en ligne comme une offre promotionnelle. Ils n’ont pas pu suivre le trafic pendant des semaines.

De nombreux sites subissent des temps de chargement retardés lorsqu’ils rencontrent un trafic important. Quelques faits –

  • La plupart des utilisateurs cliquent après un délai de 8 secondes lors du chargement d'une page
  • 4.4 $ Billion Perdu chaque année en raison de mauvaises performances

Pourquoi des tests de charge ?

  • Les tests de charge donnent confiance dans le système, sa fiabilité et ses performances.
  • Les tests de charge aident à identifier les goulots d'étranglement dans le système dans des scénarios de stress utilisateur intense avant qu'ils ne se produisent dans un environnement de production.
  • Les tests de charge offrent une excellente protection contre les mauvaises performances et s'adaptent à des stratégies complémentaires de gestion des performances et de surveillance d'un environnement de production.

Objectifs des tests de charge

Les tests de chargement identifient les problèmes suivants avant de déplacer l'application vers le marché ou la production :

  • Temps de réponse pour chaque transaction
  • Performances des composants du système sous diverses charges
  • Performances des composants de base de données sous différentes charges
  • Délai réseau entre le client et le serveur
  • Problèmes de conception de logiciels
  • Problèmes de configuration du serveur comme un serveur Web, un serveur d'applications, un serveur de base de données, etc.
  • Problèmes de limitation matérielle tels que la maximisation du processeur, les limitations de mémoire, les goulots d'étranglement du réseau, etc.

Les tests de charge détermineront si le système doit être ajusté ou si une modification du matériel et des logiciels est nécessaire pour améliorer les performances. Pour effectuer efficacement des tests de charge, vous pouvez utiliser divers outils de test de performances disponibles pour vous aider à identifier les domaines à améliorer.

Conditions préalables aux tests de charge

La principale mesure des tests de charge est le temps de réponse. Avant de commencer les tests de charge, vous devez déterminer :

  • Si le temps de réponse est déjà mesuré et comparé – Quantitatif
  • Si le temps de réponse est applicable au processus métier – Pertinent
  • Si le temps de réponse est justifiable – Réaliste
  • Si le temps de réponse est réalisable – Réalisable
  • Si le temps de réponse est mesurable à l’aide d’un outil ou d’un chronomètre – Mesurable

Un environnement doit être configuré avant de commencer les tests de charge :

Plate-forme matérielle Configuration logicielle
  • Machines serveur
  • Processeurs
  • Mémoire
  • Stockage sur disque
  • Configuration des machines de chargement
  • Configuration du réseau
  • Operating système
  • Logiciel serveur

Stratégies de tests de charge

Il existe de nombreuses façons d’effectuer des tests de charge. Voici quelques stratégies de tests de charge :

Stratégies de tests de charge

  • Test de charge manuel: Il s'agit de l'une des stratégies permettant d'exécuter des tests de charge, mais elle ne produit pas de résultats reproductibles, ne peut pas fournir des niveaux de stress mesurables sur une application et constitue un processus impossible à coordonner.
  • Outils de test de charge développés en interne: Une organisation qui réalise l'importance des tests de charge peut créer ses propres outils pour exécuter des tests de charge.
  • Outils de test de charge open source: Il existe plusieurs outils de test de charge disponibles en open source et gratuits. Ils ne sont peut-être pas aussi sophistiqués que leurs homologues payants, mais si vous avez un budget limité, ils constituent le meilleur choix.
  • Outils de test de charge de classe entreprise: Ils sont généralement livrés avec une fonction de capture/lecture. Ils prennent en charge un grand nombre de protocoles. Ils peuvent simuler un nombre exceptionnellement grand d’utilisateurs.

Comment faire des tests de charge

Le processus de test de charge peut être brièvement décrit comme ci-dessous :

  1. Créer un espace dédié Environnement de test pour les tests de charge
  2. Déterminez ce qui suit
  3. Scénarios de tests de charge
  4. Déterminer les transactions de test de charge pour une application
    • Préparer les données pour chaque transaction
    • Le nombre d'utilisateurs accédant au système doit être prédit
    • Déterminez les vitesses de connexion. Certains utilisateurs peuvent être connectés via des lignes louées tandis que d'autres peuvent utiliser une connexion commutée.
    • Déterminer les différents navigateurs et systèmes d'exploitation utilisés par les utilisateurs 
    • Une configuration de tous les serveurs comme les serveurs Web, d'applications et DB
  5. Exécution et suivi des scénarios de tests. Collecte de diverses métriques
  6. Analysez les résultats. Faire des recommendations
  7. Affiner le système
  8. Re-tester

Lignes directrices pour les tests de charge

Lignes directrices pour les tests de charge

  1. Les tests de charge doivent être planifiés une fois que l'application devient fonctionnellement stable.
  2. Un grand nombre de données uniques doivent être prêtes dans le pool de données
  3. Le nombre d'utilisateurs doit être décidé pour chaque scénario ou script
  4. Évitez la création de journaux détaillés pour conserver l'espace d'E/S disque
  5. Essayez d'éviter le téléchargement d'images sur le site
  6. Lors du processus d'exécution des cas de test de test de charge, la cohérence du temps de réponse sur la période écoulée doit être enregistrée et celle-ci doit être comparée avec diverses exécutions de tests.

Différence entre les tests de charge et de contrainte

test de charge Test de stress
Les tests de charge identifient les goulots d'étranglement dans le système sous diverses charges de travail et vérifient comment le système réagit lorsque la charge augmente progressivement. Test de stress détermine le point de rupture du système pour révéler le point maximum après lequel il se casse.
Pour reconnaître la limite supérieure du système, définissez le SLA de l'application et vérifiez comment le système peut gérer une charge importante. Pour vérifier comment le système se comporte sous des charges extrêmes et comment il se remet d'une panne.
Générer une charge accrue sur une application Web est l'objectif principal des tests de charge. Les tests de stress visent à garantir que sous une charge soudaine et élevée pendant une durée considérable, les serveurs ne tombent pas en panne.
Les attributs vérifiés lors d'un test de charge sont les performances maximales, la quantité de serveurs et le temps de réponse. Ce type de test vérifie le temps de réponse de stabilité, etc.
Lors des tests de charge, la limite de charge est un seuil de rupture. Lors des tests de résistance, la limite de charge est supérieure au seuil de rupture.

Différence entre les tests fonctionnels et de charge

Essais fonctionnels test de charge
Les résultats des tests fonctionnels sont facilement prévisibles car nous avons défini les étapes et les conditions préalables appropriées. Les résultats des tests de charge sont imprévisibles
Les résultats des tests fonctionnels varient légèrement Les résultats des tests de charge varient considérablement
Fréquence d'exécution Essais fonctionnels sera élevé La fréquence d'exécution des tests de charge sera faible
Les résultats des tests fonctionnels dépendent des données de test Les tests de charge dépendent du nombre d'utilisateurs.

Outils de test de charge

Charger le coureur :

Load Runner est un outil HP utilisé pour tester les applications dans des conditions de charge normales et maximales. Load Runner génère une charge en créant des utilisateurs virtuels qui émulent le trafic réseau. Il simule une utilisation en temps réel comme un environnement de production et donne des résultats graphiques.

En savoir plus sur Loadrunner ici..

Avantages et inconvénients des tests de charge

Voici les avantages des tests de charge :

  • Identification des goulots d’étranglement des performances avant la production
  • Améliore l’évolutivité du système
  • Minimiser les risques liés aux temps d’arrêt du système
  • Coûts d’échec réduits
  • Augmenter la satisfaction client

Inconvénients des tests de charge :

  • Il faut des connaissances en programmation pour utiliser des outils permettant de réaliser un test de charge dans le contexte de tests logiciels.
  • Les outils peuvent être coûteux car le prix dépend du nombre d'utilisateurs virtuels pris en charge.

Résumé

  • Les tests de charge sont définis comme un type de test logiciel qui détermine les performances d'un système dans des conditions de charge réelles.
  • Les tests de charge améliorent généralement les goulots d'étranglement en matière de performances, l'évolutivité et la stabilité de l'application avant qu'elle ne soit disponible pour la production.
  • Ces tests permettent d'identifier la capacité de fonctionnement maximale des applications ainsi que les goulots d'étranglement du système.
  • Test de charge dans test logiciel est important car s’il est ignoré, il peut entraîner des pertes financières pour une organisation.