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 "$@"
où 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
où 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.
./