Exporter des résultats de tests à partir du service Test de charge Azure pour une utilisation avec des outils tiers

Dans cet article, vous allez apprendre à exporter vos résultats de Test de charge Azure. Vous pouvez télécharger les résultats à l’aide du portail Azure, en tant qu’artefact dans votre flux de travail CI/CD, dans JMeter à l’aide d’un écouteur principal ou en copiant les résultats à partir d’un compte de stockage Azure. Vous pouvez utiliser ces résultats pour la création de rapports dans des outils tiers ou pour diagnostiquer les échecs des tests. Les Tests de charge Azure génère les résultats de test au format de fichier csv (Valeurs séparées par des virgules) et fournit des détails sur chaque demande d’application pour le test de charge.

Vous pouvez également utiliser les résultats des tests pour diagnostiquer les erreurs pendant un test de charge. Les champs responseCode et responseMessage vous fournissent des informations supplémentaires sur les requêtes ayant échoué. Pour plus d’informations sur l’examen des erreurs, consultez Diagnostiquer les échecs de tests de charge.

Vous pouvez générer le tableau de bord Apache JMeter à partir du fichier journal CSV en suivant les étapes mentionnées ici.

Prérequis

  • Compte Azure avec un abonnement actif. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
  • Ressource de Test de charge Azure disposant d’une série de tests terminée. Si vous avez besoin de créer une ressource de test de charge Azure, consultez Créer et exécuter un test de charge.

Format du fichier des résultats des tests

Le Test de charge Azure génère un fichier CSV de résultats de test pour chaque instance de moteur de test. Découvrez comment vous pouvez effectuer un scale-out de votre test de charge.

Le Test de charge Azure utilise le format journal CSV Apache JMeter. Pour plus d’informations sur les différents champs, consultez le glossaire JMeter dans la documentation Apache JMeter.

Vous trouverez les détails de chaque demande d’application pour l’exécution de la série du test de charge dans le fichier de résultats de test. L’extrait de code suivant montre un exemple de résultat de test :

timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1676040230680,104,Homepage,200,OK,172.18.33.7-Thread Group 1-5,text,true,,1607,133,5,5,https://www.example.com/,104,0,100
1676040230681,101,Homepage,200,OK,172.18.33.7-Thread Group 1-3,text,true,,1591,133,5,5,https://www.example.com/,101,0,93
1676040230680,101,Homepage,200,OK,172.18.33.7-Thread Group 1-1,text,true,,1591,133,5,5,https://www.example.com/,98,0,94

Accéder aux résultats de tests de charge et les télécharger

Une fois l’exécution d’une série de test de charge terminée, vous pouvez accéder aux résultats des tests de charge et les télécharger via le portail Azure, ou en tant qu’artefact dans votre flux de travail CI/CD.

Important

Pour les tests de charge comportant plus de 45 instances de moteur ou une durée d’exécution supérieure à 3 heures, le fichier de résultats n’est pas disponible pour le téléchargement. Vous pouvez configurer un écouteur principal JMeter pour exporter les résultats vers un magasin de données de votre choix ou copier les résultats à partir d’un conteneur de compte de stockage.

Pour télécharger les résultats des tests pour une exécution de test dans le portail Azure :

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

  2. Dans le volet de gauche, sélectionnez Tests pour afficher la liste des tests, puis sélectionnez votre test.

    Screenshot that shows the list of tests for an Azure Load Testing resource.

    Conseil

    Pour limiter le nombre de tests à afficher dans la liste, vous pouvez utiliser la zone de recherche et le filtre d’Intervalle de temps.

  3. Vous pouvez télécharger le fichier de résultats de tests en tant que dossier zippé de l’une des deux manières suivantes :

    • Sélectionnez les points de suspension (...) en regard de la série de tests de charge sur laquelle vous travaillez, puis sélectionnez Télécharger le fichier de résultats.

      Screenshot that shows how to download the results file for a load test run.

      Remarque

      Pour que le fichier de résultats d’une série de tests de charge soit disponible en téléchargement, l’état de cette série de tests doit être Terminé, Arrêté ou Échec.

    • Dans le volet Détails de la série de tests, sélectionnez Télécharger, puis Résultats.

      Screenshot that shows how to download the test results from the 'Test run details' pane.

  4. Vous pouvez utiliser n’importe quel outil zip pour extraire le dossier et accéder aux résultats de tests.

    Screenshot that shows the test results zip file in the downloads list.

    Le dossier contient un fichier CSV distinct pour chaque moteur de test et contient les détails des requêtes exécutées par le moteur de test pendant le test de charge.

Exporter les résultats des tests à l’aide des écouteurs back-end JMeter

Vous pouvez utiliser un écouteur principal JMeter pour exporter les résultats des tests vers des bases de données telles que InfluxDB, MySQL ou des outils de supervision comme Azure Application Insights.

Vous pouvez utiliser les écouteurs principaux JMeter par défaut, les écouteurs back-end de jmeter-plugins.orgou un écouteur principal personnalisé sous la forme d’un fichier d’archive Java (JAR).

L’extrait de code suivant montre un exemple d’utilisation de l’écouteur principal pour Azure Application Insights, dans un fichier JMeter (JMX) :

<BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true">
  <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true">
    <collectionProp name="Arguments.arguments">
      <elementProp name="testName" elementType="Argument">
        <stringProp name="Argument.name">testName</stringProp>
        <stringProp name="Argument.value">jmeter</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="connectionString" elementType="Argument">
        <stringProp name="Argument.name">connectionString</stringProp>
        <stringProp name="Argument.value">Enter your AppInsights connection string</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="liveMetrics" elementType="Argument">
        <stringProp name="Argument.name">liveMetrics</stringProp>
        <stringProp name="Argument.value">true</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="samplersList" elementType="Argument">
        <stringProp name="Argument.name">samplersList</stringProp>
        <stringProp name="Argument.value"></stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="useRegexForSamplerList" elementType="Argument">
        <stringProp name="Argument.name">useRegexForSamplerList</stringProp>
        <stringProp name="Argument.value">false</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logResponseData" elementType="Argument">
        <stringProp name="Argument.name">logResponseData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
      <elementProp name="logSampleData" elementType="Argument">
        <stringProp name="Argument.name">logSampleData</stringProp>
        <stringProp name="Argument.value">OnFailure</stringProp>
        <stringProp name="Argument.metadata">=</stringProp>
      </elementProp>
    </collectionProp>
  </elementProp>
  <stringProp name="classname">io.github.adrianmo.jmeter.backendlistener.azure.AzureBackendClient</stringProp>
</BackendListener>

Vous pouvez télécharger l’exemple complet d’utilisation de l’écouteur principal Azure Application Insights.

Copier des artefacts de test à partir d’un conteneur de compte de stockage

Important

La copie d’artefacts de test à partir d’un conteneur de compte de stockage est activée uniquement pour les tests de charge avec plus de 45 instances de moteur ou avec une durée d’exécution de test supérieure à trois heures.

Pour copier les résultats de test et les fichiers journaux d’une exécution de test à partir d’un compte de stockage, dans le portail Azure :

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

  2. Dans le volet de gauche, sélectionnez Tests pour afficher la liste des tests, puis sélectionnez votre test.

    Screenshot that shows the list of tests for an Azure Load Testing resource.

  3. Dans la liste des exécutions de test, sélectionnez votre série de tests.

    Screenshot that shows the list of test runs for a test in an Azure Load Testing resource.

    Conseil

    Pour limiter le nombre de tests à afficher dans la liste, vous pouvez utiliser la zone de recherche et le filtre d’Intervalle de temps.

  4. Dans le volet Détails de l’exécution de test, sélectionnez Copier des artefacts.

    Screenshot that shows how to copy the test artifacts from the 'Test run details' pane.

    Remarque

    Pour que le fichier de résultats d’une série de tests de charge soit disponible au téléchargement, l’état de cette série de tests doit être Terminé, Arrêté ou Échec.

  5. Copiez l’URL SAP du conteneur de compte de stockage.

    Vous pouvez utiliser l’URL SAP dans l’Explorateur Stockage Azure ou AzCopy pour copier les fichiers CSV de résultats et les fichiers journaux de l’exécution de test sur votre compte de stockage.

    L’URL SAP est valide pendant 60 minutes à partir du moment où elle est générée. Si l’URL expire, sélectionnez Copier les artefacts pour générer une nouvelle URL SAP.