JMeter : faire un test distribué avec des injecteurs à deux cartes réseaux

Suite à une discussion avec Eudes (merci) sur le groupe JMeter en français, voici une architecture possible (et testée) pour un test distribué avec des injecteurs qui possèdent deux cartes réseaux.

Une carte réseaux est tournée vers le contrôleur, et une autre carte réseaux est tournée vers le serveur à tester. L’avantage de ne pas mélanger les trafics réseaux : celui des requêtes (vers le serveur) et celui de résultats du test (vers le contrôleur).

Donc voici la recette :

Ingrédients :

  • Un poste contrôleur avec une carte réseau sur le même réseau que les injecteurs
  • Un ou plusieurs poste injecteurs avec une carte réseau tournée vers le poste contrôleur et une carte réseau tournée vers le serveur à tester.

Préparation :

1/ Modification du script de lancement de JMeter sur les injecteurs, afin d’ajouter dans la ligne d’appel, la section surlignée ci-dessous, au niveau du fichier bin\jmeter-server.bat (windows) ou bin/jmeter-server (unix/linux)

[Windows]

call jmeter -Dserver_port=%SERVER_PORT% -Djava.rmi.server.hostname=192.168.1.XX -s -j jmeter-server.log %JMETER_CMD_LINE_ARGS%

[Linux/Unix]

${DIRNAME}/jmeter -Dserver_port=${SERVER_PORT:-1099} -Djava.rmi.server.hostname=192.168.1.XX -s -j jmeter-server.log "$@"

192.168.1.XX est l’adresse de la carte réseaux coté de l’injecteur se trouvant coté contrôleur.

2/ Modification au niveau des injecteurs de l’adresse IP à utiliser pour émettre les requêtes du test. Pour cela, on modifie (ou ajoute dans) le fichier jmeter.properties, avec le paramètre suivant :

httpclient.localaddress=10.10.20.XX

10.10.20.XX est l’adresse IP de la carte réseau de l’injecter se trouvant coté serveur

On notera que cela fonctionnera pour les échantillons HTTP mais aussi pour les échantillons SOAP.

Réalisation :

Voir ce tutoriel si besoin, sinon, il ne reste plus qu’à lancer le tir distribué depuis le contrôleur.

./

Flattr this!

2 commentaires

  1. hanene dit :

    Bonjour,

    J’ai effectué le même plan de test de charge (même test fonctionnel et même configuration de l’objet : « Groupe d’unités »), mais j’ai remarqué que le temps de réponse varie largement lors de tirs de charge à partir de deux machines différentes(débits différents). Alors que je m’attendais à ce que le temps de réponse dépends seulement du site à tester.

    Est ce qu’on analyse le rapport (temps de réponse / débit) dans ce cas quelle formule utiliser?

    Merci d’avance,

    Cordialement,
    Hanene.

  2. Milamber dit :

    Bonjour,

    Il est normal de ne pas toujours avoir le même temps de réponse pour le même site avec le même scénario de test. Il y a en effet de nombreux paramètres qui peuvent faire changer un temps de réponses (l’utilisation de la bande passante, CPU du serveur / du Jmeter, démarrage ou non du serveur avant le test, etc)

    Difficile de répondre à la deuxième question, l’analyse dépend de beaucoup de paramètres et des objectifs du tir.
    Néanmoins, il est toujours intéressant d’avoir un graphique des temps de réponses par minute (une courbe).

    A+
    Milamber