Concepts clés pour les nouveaux utilisateurs de Test de charge Azure

Découvrez les concepts et composants clés de Test de charge Azure. Ces informations peuvent vous aider à configurer plus efficacement un test de charge pour identifier les problèmes de performances dans votre application.

Concepts généraux des tests de charge

Découvrez les concepts clés liés à l’exécution de tests de charge.

Utilisateurs virtuels

Un utilisateur virtuel exécute un cas de test particulier sur votre application serveur et exécute indépendamment d’autres utilisateurs virtuels. Vous pouvez utiliser plusieurs utilisateurs virtuels pour simuler des connexions simultanées à votre application serveur.

Apache JMeter fait également référence aux utilisateurs virtuels en tant que threads. Dans le script de test JMeter, un élément de groupe de threads vous permet de spécifier le pool d’utilisateurs virtuels. Pour plus d’informations sur les groupes de threads, consultez la documentation Apache JMeter.

Le nombre total d’utilisateurs virtuels pour votre test de charge dépend du nombre d’utilisateurs virtuels dans le script de test et du nombre d’instances du moteur de test.

La formule est la suivante : Nombre total d’utilisateurs virtuels = (utilisateurs virtuels dans le fichier JMX) * (nombre d’instances du moteur de test).

Vous pouvez obtenir le nombre cible d’utilisateurs virtuels en configurant le nombre d’instances du moteur de test, le nombre d’utilisateurs virtuels dans le script de test ou une combinaison des deux.

Temps de montée en puissance

Le temps de montée en puissance est le temps nécessaire pour atteindre le nombre total d’utilisateurs virtuels pour le test de charge. Si le nombre d’utilisateurs virtuels est de 20 et que le temps de montée en puissance est de 120 secondes, il faudra 120 secondes pour obtenir les 20 utilisateurs virtuels. Chaque utilisateur virtuel va démarrer 6 secondes (120/20) après que l’utilisateur précédent a démarré.

Temps de réponse

Le temps de réponse d’une demande individuelle, ou le temps écoulé dans JMeter, est le temps total écoulé entre le moment juste avant l’envoi de la demande et le moment juste après la réception de la dernière réponse. Le temps de réponse n’inclut pas le temps pour rendre la réponse. Le code client, comme du JavaScript, n’est pas traité pendant le test de charge.

Latence

La latence d’une demande individuelle est le temps total écoulé entre le moment juste avant l’envoi de la demande et le moment juste après la réception de la première réponse. La latence inclut tout le traitement nécessaire pour assembler la demande et assembler la première partie de la réponse.

Demandes par seconde (RPS)

Demandes par seconde (RPS, Requests Per Second), ou débit, est le nombre total de demandes envoyées à l’application serveur que votre test de charge génère par seconde.

La formule est la suivante : RPS = (nombre de demandes) / (durée totale en secondes).

La durée est calculée entre le début du premier échantillon et la fin du dernier échantillon. Cette durée inclut tous les intervalles entre les échantillons, par exemple si le script de test contient des minuteurs.

Une autre façon de calculer le RPS est basée sur la latence moyenne de l’application et sur le nombre d’utilisateurs virtuels. Pour simuler un nombre spécifique de RPS avec un test de charge, étant donné la latence de l’application, vous pouvez calculer le nombre requis d’utilisateurs virtuels.

La formule est la suivante : Utilisateurs virtuels = (RPS) * (latence en secondes).

Par exemple, avec une latence d’application de 20 millisecondes (0,02 seconde), pour simuler 100 000 RPS, vous devez configurer le test de charge avec 2 000 utilisateurs virtuels (100 000 * 0,02).

Composants de Test de charge Azure

Découvrez les concepts et composants clés de Test de charge Azure. Le diagramme suivant offre une vue d’ensemble de la façon dont les différents concepts sont liés les uns aux autres.

Diagramme montrant comment les différents concepts de Test de charge Azure sont liés les uns aux autres.

Ressource de test de charge

La ressource de test de charge Azure est la ressource de plus haut niveau pour vos activités de test de charge. Cette ressource fournit un emplacement centralisé pour afficher et gérer les tests de charge, les résultats des tests et les artefacts associés.

Lorsque vous créez une ressource de test de charge, vous spécifiez son emplacement, qui détermine l’emplacement des moteurs de test. Test de charge Azure chiffre automatiquement tous les artefacts de votre ressource. Vous pouvez choisir entre des clés gérées par Microsoft ou utiliser vos propres clés gérées par le client pour le chiffrement.

Pour exécuter un test de charge pour votre application, vous ajoutez un test à votre ressource de test de charge. Une ressource peut contenir zéro ou plusieurs tests.

Vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure pour accorder l’accès à votre ressource de test de charge et aux artefacts associés.

Test de charge Azure vous permet d’utiliser des identités managées pour accéder à Azure Key Vault pour stocker les certificats ou paramètres des secrets de test de charge. Vous pouvez utiliser une identité managée affectée par le système ou par l’utilisateur.

Test

Un test décrit la configuration du test de charge pour votre application. Vous ajoutez un test à une ressource de test de charge Azure existante.

Un test contient un plan de test, qui décrit les étapes à suivre pour appeler le point de terminaison de l’application. Vous pouvez définir le plan de test de l’une des trois manières suivantes :

Test de charge Azure prend en charge tous les protocoles de communication pris en charge par JMeter, pas seulement les points de terminaison HTTP. Par exemple, vous pouvez lire ou écrire dans une base de données ou une file d’attente de messages dans le script de test.

Test de charge Azure ne prend actuellement pas en charge les infrastructures de test autres qu’Apache JMeter et Locust.

Le test spécifie également les paramètres de configuration pour l’exécution du test de charge :

En outre, vous pouvez charger des fichiers de données d’entrée CSV et tester des fichiers de configuration dans le test de charge.

Quand vous démarrez un test, Test de charge Azure déploie le script de test, les fichiers associés et la configuration sur les instances du moteur de test. Les instances du moteur de test lancent ensuite le script de test pour simuler la charge de l’application.

Chaque fois que vous démarrez un test, Test de charge Azure crée une série de tests et l’attache au test.

Série de tests

Une série de tests représente une exécution d’un test de charge. Lorsque vous exécutez un test, la série de tests contient une copie des paramètres de configuration à partir du test associé.

Après la série de tests, vous pouvez afficher et analyser les résultats des tests de charge dans le tableau de bord de Test de charge Azure dans le portail Azure.

Vous pouvez également télécharger les journaux de test et exporter le fichier de résultats de test.

Important

Lorsque vous mettez à jour un test, les séries de tests existantes n’héritent pas automatiquement des nouveaux paramètres du test. Les nouveaux paramètres sont utilisés uniquement par les nouvelles séries de tests lorsque vous exécutez le test. Si vous réexécutez une série de tests existante, les paramètres d’origine de l’exécution de test sont utilisés.

Moteur de test

Un moteur de test est une infrastructure informatique, gérée par Microsoft, qui exécute le script de test. Les instances du moteur de test exécutent le script de test en parallèle. Vous pouvez effectuer un scale-out de votre test de charge en configurant le nombre d’instances du moteur de test. Découvrez comment configurer le nombre d’utilisateurs virtuels ou simuler un nombre cible de demandes par seconde.

Les moteurs de test sont hébergés dans le même emplacement que votre ressource de test de charge Azure. Vous pouvez configurer la région Azure quand vous créez la ressource de test de charge Azure.

Pendant l’exécution du script de test, Test de charge Azure collecte et agrège les journaux du framework de test provenant des instances du moteur de test. Vous pouvez télécharger les journaux pour analyser les erreurs pendant le test de charge.

Composant d’application

Lorsque vous exécutez un test de charge pour une application hébergée sur Azure, vous pouvez surveiller les métriques des ressources pour les différents composants de l’application Azure (métriques côté serveur). Pendant l’exécution du test de charge et après l’achèvement du test, vous pouvez surveiller et analyser les métriques de ressources dans le tableau de bord de test de charge Azure.

Lorsque vous créez ou mettez à jour un test de charge, vous pouvez configurer la liste des composants d’application que le test de charge Azure surveille. Vous pouvez modifier la liste des métriques de ressources par défaut pour chaque composant d’application.

Découvrez-en davantage sur les types de ressources Azure pris en charge par Test de charge Azure.

Métriques

Pendant un test de charge, le test de charge Azure collecte des métriques sur l’exécution des tests. Il existe deux types de métriques :

  • Les métriques côté client sont rapportées par les moteurs de test. Ces métriques comprennent le nombre d’utilisateurs virtuels, le temps de réponse aux requêtes, le nombre de requêtes ayant échoué et le nombre de requêtes par seconde. Vous pouvez définir des critères d’échec de test en fonction de ces métriques côté client.

  • Les métriques côté serveur sont disponibles pour les applications hébergées par Azure et fournissent des informations sur vos composants d’application Azure. Le service Test de charge Azure s’intègre avec Azure Monitor, y compris Application Insights et Container insights, pour capturer les détails des services Azure. Selon le type de service, différentes métriques sont disponibles. Par exemple, il peut y avoir des métriques pour le nombre de lectures de base de données, le type de réponses HTTP ou la consommation de ressources de conteneur.

Vous connaissez maintenant les concepts clés du test de charge Azure pour commencer à créer un test de charge.