Partage via


Configurer Test de charge Azure pour les charges à grande échelle

Dans cet article, vous allez apprendre à configurer votre test de charge pour les charges élevées avec Test de charge Azure. Test de charge Azure fait abstraction de la complexité de l’approvisionnement de l’infrastructure pour simuler un trafic élevé. Pour effectuer un scale-out d’un test de charge, vous pouvez configurer le nombre d’instances de moteur de test parallèles. Pour obtenir une distribution de charge optimale, vous pouvez surveiller les mesures d’intégrité de l’instance de test dans le tableau de bord Test de charge Azure.

Prérequis

  • Compte Azure avec un abonnement actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

  • Une ressource Test de charge Azure existante. Pour créer une ressource Test de charge Azure, consultez le guide de démarrage rapide Créer et exécuter un test de charge.

Configurer des paramètres de charge pour un test de charge

Pour simuler le trafic des utilisateurs pour votre application, vous pouvez configurer le modèle de charge et le nombre d'utilisateurs virtuels pour lesquels vous souhaitez simuler la charge. En exécutant le test de charge sur de nombreuses instances de moteur de test parallèles, Test de charge Azure peut effectuer un scale-out du nombre d’utilisateurs virtuels qui simulent le trafic vers votre application. Le modèle de charge détermine la manière dont la charge est répartie pendant la durée du test de charge. Des exemples de modèles de charge sont linéaires, pas à pas ou charge de pic.

Selon le type de test de charge, basé sur l’URL ou sur JMeter, vous avez différentes options pour configurer la charge cible et le modèle de charge. Le tableau suivant répertorie les différences entre ces deux types de test.

Type de test Nombre d’utilisateurs virtuels Modèle de charge
Basé sur une URL (basique) Spécifiez le nombre cible d’utilisateurs virtuels dans la configuration du test de charge. Modèle de charge linéaire, basé sur la durée de bon fonctionnement et le nombre d’utilisateurs virtuels.
Basé sur l’URL (avancé) Spécifiez le nombre de moteurs de test et le nombre d'utilisateurs virtuels par instance dans la configuration du test de charge. Configurer le modèle de charge (linéaire, par paliers, par pointes).
Basé sur JMeter Spécifiez le nombre de moteurs de test dans la configuration du test de charge. Spécifiez le nombre d’utilisateurs virtuels dans le script de test. Configurez le modèle de charge dans le script de test.

Configurer les paramètres de charge pour les tests basés sur l’URL

Pour spécifier les paramètres de charge d’un test de charge basé sur l’URL :

  1. Dans le Portail Azure, accédez à votre ressource de test de charge Azure.

  2. Dans le volet de navigation de gauche, sélectionnez Tests pour voir tous les tests.

  3. Dans la liste, sélectionnez votre test de charge, puis sélectionnez Modifier.

    Capture d’écran montrant la liste des tests de charge et le bouton « Modifier ».

    En guise d’alternative, vous pouvez modifier la configuration de test à partir de la page Détails du test. Pour ce faire, sélectionnez Configurer, puis sélectionnez Test.

  4. Dans la page Informations de base, veillez à sélectionner Activer les paramètres avancés.

  5. Dans la page Modifier le test, sélectionnez l’onglet Charge.

    Pour les tests basés sur l’URL, vous pouvez configurer le nombre d’instances de moteur de test parallèles et le modèle de charge.

  6. Utilisez le contrôle curseur Instances du moteur pour mettre à jour le nombre d’instances de moteur de test parallèles. Vous pouvez également entrer la valeur cible dans la zone d’entrée.

    Capture d’écran de l’onglet « Charge » dans le volet « Modifier le test ».

  7. Sélectionnez la valeur Modèle de charge dans la liste.

    Pour chaque modèle, renseignez les paramètres de configuration correspondants. Le graphique fournit une représentation visuelle du modèle de charge et de ses paramètres de configuration.

    Capture d’écran de l’onglet « Charge » lors de la modification d’un test de charge, montrant comment configurer le modèle de charge.

Configurez les paramètres de charge pour les tests basés sur JMeter

Pour spécifier les paramètres de charge d’un test de charge basé sur JMeter :

  1. Dans le Portail Azure, accédez à votre ressource de test de charge Azure.

  2. Dans le volet de navigation de gauche, sélectionnez Tests pour voir tous les tests.

  3. Dans la liste, sélectionnez votre test de charge, puis sélectionnez Modifier.

    Capture d’écran montrant la liste des tests de charge et le bouton « Modifier ».

    En guise d’alternative, vous pouvez modifier la configuration de test à partir de la page Détails du test. Pour ce faire, sélectionnez Configurer, puis sélectionnez Test.

  4. Dans la page Modifier le test, sélectionnez l’onglet Charger. Utilisez le contrôle curseur Instances du moteur pour mettre à jour le nombre d’instances du moteur de test, ou entrez la valeur directement dans la zone d’entrée.

    Capture d’écran de l’onglet « Charge » dans le volet « Modifier le test ».

  5. Sélectionnez Appliquer pour modifier le test et utiliser la nouvelle configuration lorsque vous le réexécutez.

Surveiller les indicateurs de performance d’instance du moteur

Pour vous assurer que les instances de moteur de test elles-mêmes ne sont pas un goulot d’étranglement des performances, vous pouvez surveiller les métriques de ressources de l’instance du moteur de test. Une utilisation élevée des ressources pour une instance de test peut influencer négativement les résultats du test de charge.

Le Test de charge Azure signale quatre indicateurs de performance des ressources pour chaque instance :

  • Pourcentage processeur.
  • Pourcentage de mémoire.
  • Octets réseau par seconde.
  • Nombre d’utilisateurs virtuels.

Une instance de moteur de test est considérée comme saine si le pourcentage moyen du processeur ou le pourcentage de mémoire pendant la durée de la série de tests reste inférieur à 75 %.

Pour afficher les métriques de ressources du moteur :

  1. Accédez à votre ressource de test de charge. Dans le volet gauche, sélectionnez Tests pour afficher la liste des tests de charge.

  2. Dans la liste, sélectionnez votre test de charge pour afficher la liste des séries de tests.

  3. Dans la liste des séries de tests, sélectionnez votre série de tests.

  4. Dans le tableau de bord de série de tests, sélectionnez Intégrité du moteur pour afficher les indicateurs de performance des ressources du moteur.

    Si vous le souhaitez, sélectionnez une instance de moteur de test spécifique à l’aide des filtres.

Capture d’écran montrant les indicateurs de performance de l’intégrité du moteur de charge sur le tableau de bord de la série de tests.

Résoudre les problèmes liés aux instances de moteur défectueuses

Si une ou plusieurs instances affichent une utilisation élevée des ressources, cela peut affecter les résultats des tests. Pour résoudre ce problème, essayez une ou plusieurs des procédures suivantes :

  • Réduisez le nombre de threads (utilisateurs virtuels) par moteur de test. Pour atteindre un nombre cible d’utilisateurs virtuels, vous pouvez augmenter le nombre d’instances de moteur pour le test de charge.

  • Assurez-vous que votre script est efficace, sans code redondant.

  • Si l’état d’intégrité du moteur est inconnu, réexécutez le test.

Déterminer les requêtes par seconde

Le nombre maximal de demandes par seconde (RPS) que le Test de charge Azure peut générer pour votre test de charge dépend de la latence de l’application et du nombre d’utilisateurs virtuels (VU). La latence de l’application correspond à la durée totale qui s’écoule entre l’envoi d’une requête d’application par le moteur de test et la réception de la réponse. Le nombre d’utilisateurs virtuels correspond au nombre de requêtes parallèles effectuées par Test de charge Azure à un moment donné.

Pour calculer le nombre de demandes par seconde, appliquez la formule suivante : RPS = (nombre d’unités virtuelles) * (1/latence en secondes).

Par exemple, si la latence de l’application est de 20 millisecondes (0,02 seconde) et que vous générez une charge de 2 000 VU, vous pouvez obtenir environ 100 000 RPS (2000 * 1/0,02s).

Pour atteindre un nombre cible de requêtes par seconde, configurez le nombre total d’utilisateurs virtuels pour votre test de charge.

Remarque

Apache JMeter signale uniquement les demandes qui ont été effectuées sur le serveur et de nouveau, réussies ou non. Si Apache JMeter ne parvient pas à se connecter à votre application, le nombre réel de demandes par seconde sera inférieur à la valeur maximale. Les causes possibles peuvent être que le serveur est trop occupé pour traiter la requête, ou qu’un certificat TLS/SSL est manquant. Pour diagnostiquer les problèmes de connexion, vous pouvez consulter le graphique des Erreurs dans le tableau de bord de test de charge et télécharger les fichiers journaux du test de charge.

Instances de moteur de test et utilisateurs virtuels

Dans le script Apache JMeter, vous pouvez préciser le nombre de threads parallèles. Chaque thread représente un utilisateur virtuel qui accède au point de terminaison de l’application. Nous vous recommandons de conserver le nombre de threads en dessous d’un maximum de 250.

Dans le Test de charge Azure, les instances de moteur de test sont responsables de l’exécution du script Apache JMeter. Toutes les instances du moteur de test s’exécutent en parallèle. Vous pouvez configurer le nombre d’instances pour un test de charge.

Le nombre total d’utilisateurs virtuels pour un test de charge est alors : unités virtuelles = (nombre de threads) * (nombre d’instances de moteur de test).

Pour simuler un nombre cible d’utilisateurs virtuels, vous pouvez configurer les threads parallèles dans le script JMeter et les instances du moteur pour le test de charge en conséquence. Surveillez les métriques du moteur de test pour optimiser le nombre d’instances.

Par exemple, pour simuler 1 000 utilisateurs virtuels, paramétrez le nombre de threads à 250 dans le script Apache JMeter. Configurez ensuite le test de charge avec quatre instances du moteur de test (c’est-à-dire 4 x 250 threads).

L’emplacement de la ressource de test de charge Azure détermine l’emplacement des instances du moteur de test. Toutes les instances du moteur de test dans une ressource de test de charge sont hébergées dans la même région Azure.