Tests de performance des sites web

Tests de performance des sites web
MIN
12 Jan 2024

Dans ce tutoriel, nous allons aborder la création d’un plan de test de performance d’application web avec lequel nous pouvons effectuer des tests de performance d’application web à l’aide de JMeter. Vous apprendrez également à connaître les différents éléments du plan de test nécessaires à la création d’un script de test, ainsi que leur utilisation et leur configuration.

Table des matières

Conditions préalables aux tests de performance

Lors de l’élaboration d’un plan de test des performances d’une application web, vous devez maîtriser les éléments suivants au préalable :

  1. Connaissance des scénarios d’application commerciale.
  2. Une instance d’application conçue pour tester les performances avec des configurations et un état similaires à ceux de la production.
  3. Liste des scénarios sélectionnés pour les tests de performance (car il n’est pas nécessaire de tester la charge de tous les scénarios).
  4. La charge de pointe en production ou la valeur prévue de la charge de pointe.
  5. La répartition des utilisateurs dans les différents scénarios, car certains scénarios sont utilisés plus souvent que d’autres. Par conséquent, le nombre d’utilisateurs varie d’un scénario à l’autre.
  6. La valeur du temps de réflexion ou d’attente à inclure entre certaines opérations pour simuler les utilisateurs réels – temps de réflexion, temps de frappe, temps de lecture et de traitement de l’information, etc.
  7. Un indicateur de performance à déduire des résultats du test, tel que le temps de réponse, le nombre de vues par seconde, etc.

Étapes de la création de scripts de test de performance

Pour créer un plan de test de performance d’une application web, vous devez suivre les étapes suivantes :

  1. Créez un squelette de script de test avec un plan de test configuré, des groupes de threads et des contrôleurs logiques.
  2. Création ou enregistrement de requêtes HTTP à l’aide du proxy HTTP.
  3. Ajoutez des minuteries pour introduire un temps d’attente ou de réflexion entre les demandes.
  4. Ajoutez des écouteurs pour stocker et analyser les résultats des tests.
  5. Effectuez un test à blanc avec 1 ou 2 utilisateurs.
  6. Configurez un test de résistance avec le nombre requis d’utilisateurs et exécutez-le.
  7. Exécuter et analyser les résultats des tests.

Voyons maintenant comment nous pouvons effectuer chacune des étapes ci-dessus en détail.

Créer le squelette du script de test

En fonction du nombre de groupes d’utilisateurs nécessaires pour effectuer diverses opérations, nous ajouterons des groupes de threads et des contrôleurs logiques à notre plan de test. Par exemple, si deux groupes d’utilisateurs effectuent des opérations de recherche et de connexion sur une page web.

Nous créons ensuite deux groupes de threads et ajoutons différents contrôleurs logiques pour simuler les différentes opérations effectuées par les utilisateurs. Mesures à prendre :

  • Ajoutez un groupe de threads au plan de test et nommez-le UsersSearchingKeywords.
  • Ajoutez plusieurs contrôleurs de transaction en tant qu’enfants de ce groupe de fils et nommez-les en fonction des opérations qu’ils effectuent, par exemple : « Démarrer l’application », « Rechercher un mot clé et appuyer sur la touche Entrée », « Fermer l’application ».
  • Ajoutez un autre groupe de fils et nommez-le UsersLogin.
  • Ajoutez des contrôleurs de transaction à ce groupe de fils, tels que « Lancer l’application », « Cliquer sur le lien de connexion », « Saisir les informations d’identification et cliquer sur le bouton Soumettre ».
  • Ajouter une configuration

Notre plan de test se présentera comme suit :

Notez que nous avons utilisé un contrôleur de transaction ici parce que nous pouvons avoir plusieurs requêtes HTTP dans ce contrôleur, et nous obtenons le temps de réponse total de la transaction entière après l’exécution du test, ce qui est souhaitable. En fonction des scénarios, nous pouvons également ajouter différents contrôleurs logiques, tels qu’un contrôleur de cycle, un contrôleur aléatoire, etc.

Création ou enregistrement de requêtes HTTP

Lorsque nous effectuons une opération, comme cliquer sur un bouton, plusieurs requêtes HTTP sont envoyées au serveur. Lors de la rédaction du script, nous devons créer toutes ces demandes afin de pouvoir déterminer le temps nécessaire au traitement des demandes.

Pour ce faire, vous pouvez ajouter différentes requêtes HTTP et les configurer avec des valeurs telles que l’URL, le port, le type de requête (Get, Put, Post, Delete, etc.), le corps de la requête, l’en-tête de la requête, etc. Cependant, cela peut s’avérer très lourd, à moins que nous n’ayons besoin de tester des requêtes très limitées ou de tester une requête HTTP spécifique.

Pour ce faire, JMeter nous fournit l’outil HTTP(s) Test Script Recorder, que nous pouvons utiliser pour enregistrer des scripts dans JMeter directement en effectuant des opérations dans le navigateur.

Lorsque nous commençons à enregistrer des scripts, nous pouvons sélectionner un contrôleur de transaction, tel que « Launch application », à partir du contrôleur HTTP(s) Test Script Recorder cible et effectuer des opérations telles que le lancement d’une application web dans le navigateur configuré, l’ajout de diverses requêtes HTTP au contrôleur sélectionné.

Ajout de minuteries

Nous pouvons ajouter des minuteries entre deux contrôleurs de transaction pour introduire un temps de réflexion. Par exemple, nous pouvons introduire une minuterie avec une valeur de temporisation de 3 secondes entre les contrôleurs « Launch Application » et « Search Keyword » pour simuler le temps nécessaire à l’utilisateur pour traiter la réponse et saisir le mot clé à rechercher.

Ajouter des auditeurs

Nous pouvons utiliser différents types de récepteurs pour stocker et analyser les résultats des tests, que nous avons étudiés dans notre tutoriel – Listeners in JMeter.

Essai à blanc

Avant d’exécuter le test avec le nombre réel d’utilisateurs, nous devons exécuter le test à sec avec un très petit nombre d’utilisateurs pour vérifier l’exactitude du script.

Configuration et programmation d’un test de résistance

Après avoir validé les scripts, nous configurons le test de résistance avec le nombre requis d’utilisateurs et programmons le test de résistance.

Exécution et analyse du test

Une fois la création et la configuration du script de test terminées, exécutez le test en cliquant sur l’icône de lecture ou en appuyant sur le raccourci clavier Ctrl+r. Nous surveillerons le serveur en parallèle pendant l’exécution du test. Une fois le test terminé, vous pouvez enregistrer et analyser les résultats du test.

Conclusion

Nous avons maintenant vu le plan de test de base pour l’application web, mais il reste encore quelques points à régler :

  1. Lors des tests, nous ne devons pas saisir en dur des valeurs telles que les termes de recherche, les identifiants de connexion des utilisateurs, etc. Pour ce faire, nous devons paramétrer les scripts de test.
  2. La création de scripts dynamiques et la manipulation des variables de session sont d’autres éléments à prendre en compte lors de la création de scripts. Pour résoudre ces problèmes, nous disposons du concept de corrélation.