Tests de performance – un guide pour les tests de performance des logiciels

Tests de performance – un guide pour les tests de performance des logiciels
MIN
20 Juin 2023

Les tests de performance de toute application permettent d’identifier les limites (goulots d’étranglement) de la performance de l’application. Les tests de performance sont essentiels pour obtenir des performances optimales et garantir la stabilité et la fiabilité des applications. Lors des tests de performance, nous ne mesurons pas seulement le temps de réponse de l’application, mais aussi plusieurs autres caractéristiques qualitatives telles que la stabilité, la fiabilité, la robustesse, l’évolutivité, l’utilisation des ressources, etc. À l’avenir, nous proposerons ici un tutoriel sur les tests de performance avec JMeter.

Table des matières

Qu’est-ce qu’un test de performance ?

Les tests de performance font partie intégrante des tests non fonctionnels, qui évaluent les performances d’une application en simulant des charges prévues ou excessives. Son objectif est de voir comment l’application se comporte dans différentes conditions de charge et d’évaluer ses performances.

Fondamentalement, dans les tests de performance, nous essayons de simuler la charge de travail réelle à l’aide d’outils tels que JMeter. Ces outils nous aident à créer des utilisateurs virtuels qui effectuent diverses opérations dans l’application, simulant ainsi les actions d’utilisateurs réels.

Tests de performance – types de tests de performance

Tests de charge

Le test de charge est un type de test de performance qui évalue la performance d’une application sous une charge attendue. Dans les tests de charge, nous évaluons divers paramètres de performance tels que le temps de réponse, la charge du serveur et les taux d’erreur observés pendant l’exécution des tests de charge.

Tests de résistance

Le test de stress est un type de test de performance qui évalue la performance d’une application sous des charges beaucoup plus élevées que la charge prévue ou prédite. Cette approche vous permet de déterminer le seuil de charge ou le point à partir duquel l’application cesse de répondre correctement.

Tests d’endurance

Les tests d’endurance sont également appelés « tests de charge à long terme » ou « tests de stabilité sous charge » (Soak testing). Dans les tests d’endurance, l’application testée est continuellement chargée pendant une longue période, par exemple 2 ou 3 jours. L’objectif est d’identifier les problèmes potentiels de performance, de mémoire, de fuite de ressources ou d’autres problèmes pouvant survenir lors de l’exécution d’une application surchargée par de grandes quantités d’utilisateurs ou de données pendant de longues périodes.

Test des pointes

Les tests d’endurance consistent à exposer une application à un afflux soudain d’utilisateurs virtuels. Cette approche nous aide à déterminer si une application peut se remettre d’un problème après une augmentation soudaine du nombre d’utilisateurs simultanés.

Test de volume

Dans les tests de volume, nous introduisons de grandes quantités de données dans l’application. Pour ce faire, il faut soit insérer une grande collection de données dans la base de données, soit télécharger un grand fichier à traiter. L’objectif est de vérifier comment l’application gère de grandes quantités de données et si ses performances et sa stabilité ne sont pas affectées par cette charge de travail.

Tests de performance
Tests de performance

Pour en savoir plus sur les différents types de tests de performance avec des exemples concrets, cliquez sur Types de tests de performance.

Pourquoi des tests de performance sont-ils nécessaires ?

Ils permettent de vérifier la fiabilité de l’application

Différents types de tests de performance sont effectués pour vérifier que l’application est fiable et fournit des résultats corrects et cohérents. Les tests de performance tels que les tests de charge et les tests d’endurance permettent d’évaluer la réponse correcte d’un système sous des charges prévues pendant une période donnée (test de charge) ou sur de longues périodes (test d’endurance).

Aider à identifier les limites de performance

Les tests de performance permettent d’identifier les limites de performance des applications qui ralentissent le système. Ces composants peuvent ensuite être optimisés afin d’accroître les performances et d’améliorer le système dans son ensemble.

Ils permettent d’évaluer l’évolutivité de l’application

En effectuant des tests de performance avec différents nombres d’utilisateurs simultanés, nous pouvons vérifier si l’application est capable de s’adapter à un plus grand nombre d’utilisateurs. Nous pouvons ainsi identifier les besoins suffisants en matière d’infrastructure/serveur pour le système.

Ils permettent de vérifier la robustesse de l’application

Les tests de charge permettent de vérifier la robustesse de l’application sous des charges plus élevées que prévu. L’objectif est de déterminer la limite supérieure ou le point d’arrêt à partir duquel l’application répondra correctement aux utilisateurs simultanés et n’échouera pas.

Processus de test de performance

La planification et l’exécution des tests de performance requièrent différentes séries d’activités qui sont communes à chaque test de performance, quel que soit l’outil utilisé. Vous trouverez ci-dessous une procédure étape par étape pour la planification et l’exécution d’un test de charge.

1. Scénarios d’essais de performance

Tout d’abord, nous sélectionnons les scénarios d’essai qui seront soumis à des tests de performance. Généralement, au lieu de sélectionner tous les scénarios de tests fonctionnels pour une application, nous choisissons seulement les scénarios qui ont un grand volume de données ou les scénarios qui seront exécutés par un nombre relativement important d’utilisateurs. Voici un exemple de scénario de test :

  • Lancez l’application,
  • le temps d’attente,
  • entrez vos données de connexion valides et cliquez sur le bouton « Connexion »,
  • le temps d’attente,
  • effectuer une certaine activité sur la page d’accueil.
  • le temps d’attente,
  • cliquez sur le bouton « Déconnexion ».

Le temps d’attente correspond au temps qu’un utilisateur passe à consulter une page web après son chargement, au temps nécessaire pour remplir des formulaires tels que les formulaires de connexion, les formulaires d’enregistrement des utilisateurs, la saisie de données dans les champs de recherche, etc. Ce temps varie en fonction de la tâche effectuée. Par exemple, le temps nécessaire pour remplir un grand formulaire peut être supérieur à 10 secondes, alors que le temps nécessaire pour remplir les données de connexion peut n’être que de 2 à 3 secondes.

2. Répartition des utilisateurs

L’identification des scénarios est suivie de la répartition des utilisateurs. Ici, nous assignons les utilisateurs à différents scénarios. Par exemple, lorsque vous testez les performances d’une application de courrier électronique, vous pouvez répartir les utilisateurs selon les scénarios suivants :

  • Scénario de lecture d’e-mails non lus – 50% des utilisateurs
  • Scénario de rédaction d’e-mails – 30 % des utilisateurs
  • Scénario de suppression des courriels – 18% des utilisateurs
  • Scénario d’enregistrement des utilisateurs – 2% des utilisateurs

3. Le script

Les scripts sont réalisés à l’aide d’un outil de test de charge tel que Load Runner, JMeter, Silk Performer, etc. Ces outils simulent les actions effectuées par les utilisateurs. Nous scénarisons les scénarios identifiés et assignons les utilisateurs en fonction de leur distribution.

4. « Procédure de « marche à vide

Avant de lancer le test de charge avec le nombre prédéfini d’utilisateurs, nous effectuons une procédure de « test à blanc » de l’application, au cours de laquelle nous assignons 1 ou 2 utilisateurs à chaque scénario et vérifions que tout fonctionne correctement.

5. Exécution du test et analyse des résultats

Après avoir exécuté le « Dry Run » et vérifié que les scripts fonctionnent correctement, nous lancerons le test de charge proprement dit. Le test de résistance peut être programmé pour une certaine durée ou un certain nombre d’itérations. Par exemple, un test de résistance peut être programmé pour « n » minutes ou « m » itérations par utilisateur.

Une fois le test de résistance effectué, les résultats sont analysés. Certains outils open-source peuvent ne pas offrir une très bonne interprétation intégrée des résultats des tests. Dans ce cas, il peut être nécessaire d’utiliser des plugins ou d’autres outils pour intégrer une interprétation plus avancée ou plus intuitive sur le plan graphique.

Comment choisir un outil de test de performance des logiciels ?

Il existe de nombreux outils pour tester la performance des applications, tels que JMeter, LoadRunner, Gatling, Apache Bench, etc. Les facteurs suivants doivent être pris en compte lors de la sélection d’un outil :

  • Type d’application: certains outils sont plus adaptés aux applications web, tandis que d’autres sont plus adaptés aux API ou aux applications mobiles.
  • Fonctionnalités et capacités:Explorez les fonctionnalités et les capacités de l’outil et évaluez s’il répond à vos besoins en matière de tests de performance des applications.
  • Facilité d’utilisation et d’apprentissage: Tenez compte de la facilité d’utilisation de l’outil et du temps nécessaire à son apprentissage.
  • Support et communauté: assurez-vous que l’outil dispose d’un support actif et d’une communauté disponible où vous pouvez obtenir de l’aide et des conseils pour l’utiliser.

Il est également important de se rappeler que les tests de performance ne sont pas une activité ponctuelle. Il s’agit d’un processus qui doit être effectué régulièrement et intégré dans le cycle de développement de l’application. Vous pouvez ainsi vous assurer que votre application est fiable, évolutive et robuste dans la gamme la plus large possible de conditions de charge.

Outils de test de performance des logiciels

Examinons maintenant quelques-uns des outils de test de performance les plus utilisés.

  • Apache JMeter – JMeter est l’un des outils de test de performance les plus utilisés. Parce qu’il est gratuit et open-source, il est utilisé aussi bien par les start-ups que par les grandes entreprises. Le seul inconvénient est que la courbe d’apprentissage est légèrement plus raide que celle d’autres outils. Lien de téléchargement : Téléchargement d’Apache JMeter.
  • LoadRunner – LoadRunner est un outil de test de performance développé par Micro Focus. Il s’agit d’un outil payant, mais il existe également une version communautaire gratuite qui prend en charge jusqu’à 50 utilisateurs virtuels pour les tests de charge. Lien de téléchargement : loadrunner download.
  • WebLOAD – WebLOAD est un outil de test de performance de RadView. Il s’agit là encore d’un outil payant qui, comme LoadRunner, propose une édition gratuite avec 50 utilisateurs virtuels pour les tests de charge. Lien de téléchargement : webload download.
  • LoadNinja – LoadRunner est l’un des outils payants de test de performance. Contrairement à la plupart des autres outils payants ou gratuits, il est très simple et rapide car il ne nécessite pas de scripts complexes, mais fonctionne avec de vrais navigateurs dans le nuage. Lien de téléchargement : loadNinja download.
  • Locust – Locust est un outil de test de performance libre et gratuit qui nécessite l’utilisation de scripts Python. Permet d’effectuer des tests de performance sur plusieurs appareils distribués. Lien de téléchargement : téléchargement du criquet pèlerin.
  • NeoLoad – NeoLoad est un outil payant de test de performance. Il réduit considérablement le temps et la complexité de l’écriture de scripts grâce à ses fonctions de glisser-déposer et d’enregistrement-lecture. En outre, il prend également en charge les scripts Selenium, ce qui est pratique si vous utilisez Selenium pour l’automatisation des tests. Lien de téléchargement : Téléchargement de NeoLoad.

Pour plus d’informations sur ces outils, ainsi qu’une évaluation détaillée, consultez notre article sur les outils de test de performance. Ceci conclut notre tutoriel sur les tests de performance. Je vous encourage à consulter notre série de tutoriels JMeter, qui vous guidera pas à pas dans l’apprentissage de l’outil de test de performance le plus populaire, Apache JMeter, et ce gratuitement.