Comment utiliser JMeter pour enregistrer des scénarios de test

introduction

Dans ce didacticiel, nous allons vous apprendre à configurer et à utiliser l’enregistreur de script de test HTTP (S) Apache JMeter pour enregistrer les demandes HTTP. L’enregistrement de requêtes HTTP est un excellent moyen de créer des plans de test et peut être utile pour créer des tests imitant de près le comportement d’un utilisateur normal.

Ce tutoriel suppose que vous maîtrisiez bien Apache JMeter. Si vous êtes nouveau sur JMeter, voici un autre tutoriel qui peut vous aider à démarrer: https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing-on -a-web-server [Comment utiliser Apache JMeter pour effectuer des tests de charge sur un serveur Web]

Conditions préalables

Voici une liste des logiciels requis par ce tutoriel:

Pour référence, lors de la rédaction de ce tutoriel, nous avons utilisé les versions de logiciel suivantes:

  • Oracle Java 7 mise à jour 60, 64 bits

  • JMeter 2.11

  • Firefox 30.0

Commencer à construire un plan de test

Tout d’abord, démarrez JMeter. Commençons ensuite à élaborer un plan de test. Si vous souhaitez déjà commencer un plan de test, ignorez cette section et ajoutez un contrôleur d’enregistrement à votre groupe de threads (section suivante).

Au minimum, nous voudrons ajouter un groupe de threads et une requête HTTP par défaut. Commençons par ajouter un groupe de discussion.

Ajouter un groupe de discussion

Ajouter un groupe de discussion au plan de test:

  1. Faites un clic droit sur Test Plan

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Threads (utilisateurs)> _

  4. Cliquez sur Thread Group

Définissez les propriétés du groupe de threads avec les valeurs suivantes:

  • * Nombre de threads (utilisateurs) *: Définissez ceci sur * 50 *

  • * Période d’accélération (en secondes) *: Réglez ceci sur * 10 *.

  • * Nombre de boucles *: Laissez ce paramètre à * 1 *.

image: https: //assets.digitalocean.com/articles/jmeter/thread_group1.png [Propriétés du groupe de threads]

Ajouter une requête HTTP par défaut

Ajoutons maintenant les requêtes HTTP par défaut à _Thread Group:

  1. Sélectionnez Thread Group, puis cliquez dessus avec le bouton droit de la souris.

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Config Element> _

  4. Cliquez sur HTTP Request Defaults

Dans Requêtes HTTP par défaut, dans la section Serveur Web, renseignez le champ Nom du serveur ou IP_ avec le nom ou l’adresse IP du serveur Web que vous souhaitez tester.

image: https: //assets.digitalocean.com/articles/jmeter/http_request_defaults.png [Paramètres par défaut de la requête HTTP]

Ajouter un gestionnaire de cookies HTTP

Si votre serveur Web utilise des cookies, vous pouvez ajouter un support pour les cookies en ajoutant un gestionnaire de cookies HTTP au groupe de discussion:

  1. Sélectionnez Thread Group, puis cliquez dessus avec le bouton droit de la souris.

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Config Element> _

  4. Cliquez sur HTTP Cookie Manager

Ajouter un contrôleur d’enregistrement

Ajoutons maintenant un contrôleur d’enregistrement à _Thread Group:

  1. Sélectionnez Thread Group, puis cliquez dessus avec le bouton droit de la souris.

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Logic Controller> _

  4. Cliquez sur Recording Controller

Le contrôleur d’enregistrement est l’endroit où les échantillonneurs de demandes HTTP enregistrés seront créés. L’étape suivante consiste à configurer un enregistreur de script de test HTTP (S).

Ajouter un enregistreur de script de test HTTP (S)

Ajoutons maintenant un enregistreur de script de test HTTP (S) à WorkBench:

  1. Sélectionnez WorkBench, puis cliquez dessus avec le bouton droit de la souris.

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Non-Test Elements> _

  4. Cliquez sur HTTPS) Test Script Recorder

    • Remarque: * Les éléments ajoutés à WorkBench ne sont pas enregistrés avec le reste du plan de test. Si vous souhaitez enregistrer votre WorkBench, cliquez avec le bouton droit de la souris sur WorkBench, puis cliquez sur _Enregistrer la sélection sous… et enregistrez-le à l’emplacement de votre choix. Une fois qu’il est enregistré, vous pouvez l’ajouter à tout plan de test que vous avez ouvert en utilisant l’élément de menu «Fusionner» et en sélectionnant votre WorkBench enregistré.

Réglage du port

Le port par défaut sur lequel le proxy HTTP (S) Test Script Recorder sera exécuté est + 8080 +. Cela peut être changé en modifiant le paramètre + Port sous Paramètres globaux.

Inclusion ou exclusion de modèles d’URL (facultatif)

Dans l’enregistreur de script HTTP (S), vous pouvez ajouter des modèles d’URL, écrits sous forme d’expressions régulières, à inclure ou à exclure lors de l’enregistrement. Cela peut être utile pour inclure uniquement les types de contenu que vous souhaitez demander (par exemple: * .html, * .php, etc.) ou pour exclure les types de contenu que vous ne souhaitez pas demander (par exemple: * .jpg, * .png, * .js, etc.).

Pour ajouter un modèle d’URL, cliquez sur le bouton "Ajouter" situé sous la section Modèles d’URL à inclure_ ou Motifs d’URL à exclure_, puis cliquez sur le haut de la zone blanche de la section. Vous devriez maintenant pouvoir taper un motif. Répétez le processus pour ajouter plus de motifs.

Exemple: modèles d’URL pour les pages Web

.*\.html
.*\.php
.*\.htm

Exemple: modèles d’URL pour les images

.*\.png
.*\.jpg
.*\.gif

Voici une capture d’écran des modèles d’URL à exclure pour exclure des images:

image: https: //assets.digitalocean.com/articles/jmeter/exclude_images.png [Modèles d’URL permettant d’exclure des images]

Ajout d’éléments à l’enregistreur de script (facultatif)

L’ajout d’éléments JMeter à un enregistreur de script de test HTTP (S) fera en sorte que les demandes enregistrées héritent de l’élément ajouté. Par exemple, si nous ajoutons un élément Timer à l’enregistreur de script, le minuteur sera ajouté à chaque demande HTTP enregistrée. Lorsque le test est exécuté, le minuteur fera attendre chaque thread de test avant d’exécuter la requête HTTP.

Ajoutons un Constant Timer à HTTP (S) Test Script Recorder, à titre d’exemple:

  1. Sélectionnez HTTP (S) Test Script Recorder, puis cliquez dessus avec le bouton droit de la souris.

  2. Passez la souris sur _Ajouter> _

  3. Passez la souris sur _Timers> _

  4. Cliquez sur Constant Timer

Vous pouvez configurer le délai de traitement sur ce que vous désirez.

image: https: //assets.digitalocean.com/articles/jmeter/constant_timer.png [Minuteur constant]

Supposons que vous souhaitiez simuler un utilisateur en cliquant sur une page différente toutes les 2 secondes. Définir le délai du thread à 2000 ms permettra d’ajouter un délai de 2 secondes à chaque demande HTTP enregistrée.

Ce n’est qu’un exemple de la manière dont vous pouvez ajouter des éléments à l’enregistreur de script pour créer un plan de test exécutant les tests souhaités.

Commencer l’enregistrement

En cliquant sur le bouton “Démarrer”, en bas de la fenêtre Script Recorder, le serveur proxy JMeter démarrera et servira à intercepter et enregistrer les requêtes du navigateur. Cliquez sur le bouton Démarrer (de l’enregistreur) maintenant.

La première fois que vous essayez d’exécuter l’enregistreur, une erreur s’affiche, indiquant qu’il ne peut pas démarrer car un certificat n’existe pas. Cliquez sur OK, puis sur Démarrer une deuxième fois. Vous devriez voir un message indiquant qu’un certificat temporaire nommé ApacheJMeterTemporaryRootCA.crt a été créé dans le répertoire bin de JMeter. Cliquez sur OK et continuez.

image: https: //assets.digitalocean.com/articles/jmeter/temp_cert.png [Création d’un certificat temporaire]

  • Remarque: * Si votre navigateur utilise déjà un proxy, vous devez configurer JMeter pour utiliser ce proxy avant de démarrer JMeter, à l’aide des options de ligne de commande -H et -P.

Configurer Firefox pour utiliser le proxy JMeter

Nous utiliserons Firefox comme navigateur lors de l’utilisation de l’enregistreur de script de test HTTP (S) JMeter car, contrairement à Chrome et à certains autres navigateurs, il vous permet de remplacer la configuration à l’échelle du système pour ses paramètres de proxy.

Configurez Firefox pour utiliser localhost (127.0.0.1) sur le port 8080 en tant que proxy pour tout le trafic en procédant comme suit:

  1. Ouvrez Firefox

  2. Allez dans le menu Préférences

  3. Cliquez sur l’onglet Avancé

  4. Puis onglet Réseau

  5. Dans la section «Connexion», cliquez sur «Paramètres…».

  6. Sélectionnez le bouton radio «Configuration manuelle du proxy».

  7. Définissez le proxy HTTP sur «localhost» et le port sur «8080».

  8. Cochez «Utiliser ce serveur proxy pour tous les protocoles»

  9. Cliquez sur OK et quittez le menu Préférences.

    • Remarque: * Lorsque Firefox est configuré pour utiliser l’enregistreur de script de JMeter en tant que proxy, il ne fonctionnera correctement que si cet enregistreur est en cours d’exécution.

Enregistrement de requêtes HTTP

Maintenant que le script de script de test HTTP (S) de notre plan de test est en cours d’exécution et que Firefox est configuré pour l’utiliser comme proxy, les demandes HTTP envoyées par Firefox seront enregistrées. Laissez-le tester.

Dans Firefox, accédez à la page d’accueil de votre serveur (le même serveur que celui que vous avez configuré dans les paramètres par défaut des requêtes HTTP JMeter):

http://your_domain.com/

Maintenant, il devrait y avoir un petit triangle à côté de votre contrôleur d’enregistrement. Cliquez dessus pour développer et afficher les demandes qu’il a enregistrées. Vous devriez voir les demandes HTTP enregistrées, en fonction des modèles d’URL que vous avez inclus et exclus. N’hésitez pas à parcourir votre site pour enregistrer plus de demandes.

Voici un exemple de ce qui a été enregistré lors de la visite de la page d’accueil d’un site WordPress (sans paramètres d’URL définis):

image: https: //assets.digitalocean.com/articles/jmeter/no_patterns.png [Requêtes HTTP enregistrées]

Comme vous pouvez le constater, de nombreuses demandes ont été créées. Vous pouvez affiner la liste des requêtes HTTP en supprimant simplement les entrées non désirées ici.

Si vous ne voyez aucune entrée dans votre contrôleur d’enregistrement, vous voudrez peut-être vérifier vos modèles d’URL dans l’enregistreur de script de test HTTP (S) (Conseil: supprimez tout ce qui est inclus et exclu pour tout enregistrer).

Une fois l’enregistrement terminé, cliquez sur le bouton “Arrêter” au bas de la fenêtre HTTP (S) Test Script Recorder. Notez que Firefox ne pourra plus accéder à aucune page (car il est configuré pour utiliser le port 8080 en tant que proxy) - configurez-le pour utiliser «Aucun proxy» si vous souhaitez fonctionner normalement.

Exécuter votre plan de test

Une fois que vous êtes satisfait du plan de test que vous avez enregistré, sauvegardez-le, puis exécutez-le. Il fonctionnera exactement comme un test créé manuellement. Vous pourrez ainsi le configurer, supprimer et ajouter des éléments pour le faire correspondre au scénario de test souhaité.

Conclusion

Maintenant que vous pouvez utiliser l’enregistreur de script de test HTTP (S) pour vous aider à créer des plans de test JMeter, vous devriez avoir plus de facilité à créer des plans de test imitant des scénarios réalistes. N’hésitez pas à explorer les demandes enregistrées dans votre contrôleur d’enregistrement pour en savoir plus sur les types de demandes effectuées lorsque les utilisateurs naviguent sur votre serveur Web.

Bonne chance!

Related