Pruebas Distribuidas (Maestro y Esclavo)

Podemos utilizar múltiples servidores remotos para realizar pruebas de estrés, utilizando tunelización SSH como medio de comunicación. Con la tunelización SSH puede configurar puertos que permitan que el cliente (maestro) y el servidor (esclavo) de JMeter se conecten entre sí.

Requisitos

 * Asegúrese de tener la misma versión de JMeter (versión 2.13) en todas las máquinas (esclavas y maestras).
 * Aunque no es obligatorio, se recomienda tener Java en su versión 8 en todas las máquinas (maestras y esclavas).
 * Compruebe que todos los esclavos tengan los complementos que utilizará el script de prueba y que el nodo maestro desencadenará su ejecución. El maestro envía el archivo .jmx a sus esclavos pero no envía los complementos requeridos.
 * Los archivos de datos de prueba (como archivos .csv) también deben copiarse manualmente a los esclavos.

Diagrama de Distribución
La forma en la que JMeter trabaja es: un controlador maestro inicia la prueba en múltiples esclavos



Terminología

 * Maestro: sistema que ejecuta JMeter GUI, que controla la prueba
 * Esclavo: sistema que ejecuta jmeter-server, que toma los comandos de la GUI y envía las peticiones a El (los) objetivo(s)
 * Objetivo: servidor web que apuntamos para la prueba de estrés



Configuración del Maestro
bin/jmeter.properties
 * En el archivo de configuración de JMeter ubicado en:

remote_hosts=127.0.0.1:55501 client.rmi.localport=55512 mode=Batch num_sample_threshold=250
 * Agregamos/Modificamos:

bin/jmeter-server -Djava.rmi.server.hostname=127.0.0.1 -Jserver.rmi.ssl.disable=true
 * Ejecutar el comando:

Configuración de los Esclavos
bin/jmeter.properties
 * En el archivo de configuración de JMeter ubicado en:

server_port=55501 server.rmi.localhostname=127.0.0.1 server.rmi.localport=55511
 * Agregamos/Modificamos:

ssh -L 55501:127.0.0.1:55501 -L 55511:127.0.0.1:55511 -R 55512:127.0.0.1:55512 user@hostname
 * Desde el maestro, nos conectamos al esclavo ejecutando:

bin/jmeter.sh -Djava.rmi.server.hostname=127.0.0.1 -Jserver.rmi.ssl.disable=true # o bin/jmeter.sh -Djava.rmi.server.hostname=127.0.0.1 -Jserver.rmi.ssl.disable=true -t /path/to/test-plan.jmx
 * Finalmente, desde el maestro abrimos la GUI de JMeter para ejecutar la prueba: