Test de charge d’un site web à l’aide d’un script JMeter existant dans Test de charge Azure

Découvrez comment utiliser un script Apache JMeter pour tester la charge d’une application web avec Test de charge Azure à partir du Portail Azure.

Test de charge Azure vous permet de sélectionner un script Apache JMeter existant et de l’utiliser pour exécuter un test de charge à l’échelle du cloud. Vous pouvez également créer un test de charge basé sur une URL dans le portail Azure.

Les cas d’usage pour la création d’un test de charge avec un script JMeter existant sont les suivants :

  • Vous souhaitez réutiliser des scripts JMeter existants pour tester votre application.
  • Vous souhaitez tester plusieurs points de terminaison dans un seul test de charge.
  • Vous disposez d’un test de charge piloté par les données. Par exemple, vous souhaitez lire des données CSV dans un test de charge.
  • Vous souhaitez tester des points de terminaison qui ne sont pas basés sur HTTP, tels que des bases de données ou des files d’attente de messages. Test de charge Azure prend en charge tous les protocoles de communication pris en charge par JMeter.

Prérequis

Créer un script Apache JMeter

Si vous disposez déjà d’un script, vous pouvez passer à la Création d’un test de charge. Dans cette section, vous allez créer un échantillon de script de test JMeter pour effectuer un test de charge d’un point de terminaison web.

Vous pouvez également utiliser l’enregistreur de script de test Apache JMeter pour enregistrer les requêtes lors de la navigation dans l’application à l’aide d’un navigateur. Vous pouvez également importer des commandes cURL pour générer les requêtes dans le script de test JMeter.

Pour commencer à utiliser un exemple de script JMeter :

  1. Clonez ou téléchargez les exemples de projets à partir de GitHub

  2. Ouvrez le fichier SampleTest.jmx dans un éditeur de texte.

    Ce script simule un test de charge de cinq utilisateurs virtuels qui accèdent simultanément à un point de terminaison web. Cela prend 2 minutes.

  3. Définissez la valeur du nœud sur HTTPSampler.domain le nom d’hôte de votre point de terminaison.

    Par exemple, si vous souhaitez tester le point de terminaison https://www.contoso.com/app/products, le nom d’hôte est www.contoso.com.

    Attention

    N’incluez pas https ou http dans l’URL du point de terminaison.

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP request" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Sample web test" enabled="true">
            <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"></stringProp>
        <stringProp name="HTTPSampler.port"></stringProp>
        <stringProp name="HTTPSampler.protocol"></stringProp>
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
        <stringProp name="HTTPSampler.path"></stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
        <stringProp name="HTTPSampler.response_timeout"></stringProp>
    </HTTPSamplerProxy>
    
  4. Définissez la valeur du nœud sur HTTPSampler.path le chemin de votre point de terminaison.

    Par exemple, le chemin d’accès de l’URL https://www.contoso.com/app/products serait /app/products.

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP request" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="Sample web test" enabled="true">
            <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"></stringProp>
        <stringProp name="HTTPSampler.port"></stringProp>
        <stringProp name="HTTPSampler.protocol"></stringProp>
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
        <stringProp name="HTTPSampler.path"></stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
        <stringProp name="HTTPSampler.response_timeout"></stringProp>
    </HTTPSamplerProxy>
    
  5. Enregistrez et fermez le fichier.

    Important

    N’incluez aucune information d’identification personnelle dans le nom de l’échantillonneur dans le script JMeter. Les noms de l’échantillonneur apparaissent dans le tableau de bord des résultats de l’exécution de tests Test de charge Azure.

Créer un test de charge

Lorsque vous créez un test de charge dans le service Test de charge Azure, vous spécifiez un script JMeter pour définir le plan de test de charge. Une ressource du service Test de charge Azure peut contenir plusieurs tests de charge.

Lorsque vous créez un test rapide à l’aide d’une URL, le service Test de charge Azure génère automatiquement le script JMeter correspondant.

Pour créer un test de charge à l’aide d’un script JMeter existant dans le portail Azure :

  1. Connectez-vous au Portail Azure à l’aide des informations d’identification de votre abonnement Azure.

  2. Accédez à votre ressource Test de charge Azure, sélectionnez Tests dans le volet gauche, sélectionnez + Créer, puis Télécharger un script JMeter.

    Capture d’écran qui montre la page Test de charge Azure et le bouton pour créer un nouveau test.

  3. Dans l’onglet Notions de base, entrez le Nom du test et les informations de Description du test . Si vous le souhaitez, vous pouvez activer la case à cocher exécuter le test après la création .

    Capture d'écran qui montre l'onglet « De base » pour créer un test.

  4. Sous l’onglet plan de Test, sélectionnez votre script Apache JMeter, puis sélectionnez Télécharger pour télécharger le fichier sur Azure.

    Capture d’écran montrant l’onglet Plan de test.

    Notes

    Vous pouvez télécharger des fichiers de configuration JMeter supplémentaires ou d’autres fichiers référencés dans le fichier JMX. Par exemple, si votre script de test utilise des jeux de données CSV, vous pouvez télécharger le ou les fichiers .csv correspondants. Découvrez également comment lire des données à partir d’un fichier CSV.

  5. Sélectionnez Revoir + créer. Passez en revue tous les paramètres, puis sélectionnez Créer pour créer le test de charge.

Vous pouvez mettre à jour la configuration de test à tout moment, par exemple pour télécharger un autre fichier JMX. Choisissez votre test dans la liste des tests, puis sélectionnez Modifier.

Exécuter le test de charge

Quand le service Test de charge Azure démarre votre test de charge, il déploie d’abord le script JMeter et tous les autres fichiers sur des instances de moteur de test, puis démarre le test de charge.

Si vous avez sélectionné Exécuter le test après la création, votre test de charge démarre automatiquement. Pour démarrer manuellement le test de charge que vous avez créé précédemment, procédez comme suit :

  1. Accédez à votre ressource Test de charge Azure, sélectionnez Tests dans le volet gauche, puis sélectionnez le test que vous avez créé précédemment.

    Capture d'écran qui montre la liste des tests de charge.

  2. Dans la page de détails du test, sélectionnez Exécuter ou Exécuter le test. Sélectionnez ensuite Exécuter dans le volet de confirmation pour démarrer le test de charge. Si vous le souhaitez, fournissez une description de la série de tests.

    Capture d’écran montrant le message de confirmation.

    Conseil

    Vous pouvez arrêter un test de charge à tout moment à partir du Portail Azure.

  3. Notez les détails, les statistiques et les métriques client de l’exécution du test dans le portail Azure.

    Capture d’écran montrant le tableau de bord des série de tests.

    Utilisez les statistiques d’exécution et les informations sur les erreurs pour identifier les problèmes de performance et de stabilité de votre application sujette au test de charge.

Étapes suivantes

Vous avez créé un test de charge basé sur le cloud à partir d’un script de test JMeter existant. Pour les applications hébergées par Azure, vous pouvez également surveiller les métriques côté serveur pour obtenir des informations supplémentaires sur les applications.