JMeter es una herramienta muy potente para hacer pruebas de rendimiento sobre peticiones HTTP.

También puede usarse para hacer pruebas de carga sobre clases Java, en este tutorial veremos cómo hacer pruebas de carga directamente sobre una clases Java (que luego podrá invocar a un Servicio externo por ejemplo).

Para eso:

1. Creamos un proyecto Maven con el archetype maven-archetype-simple

mvn archetype:create -DgroupId=com.lmgracia.examples.jmeter -DartifactId=jmeter-testingclass

2. Una vez creado vamos a añadir al proyecto las dependencias a JMeter para poder usar el interfaz JavaSamplerClient.

Para esto se necesitan los JARS ApacheJMeter_core y ApacheJMeter_java.

Para localizarlos puedo usar mvnrepository.com (http://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core ) que me darán:

Y luego en mi pom.xml meteré:

Importante lo del exclude!

3. Genero el proyecto Eclipse con mvn eclipse:eclipse

4. Creo la clase que quiero lanzar desde JMeter. En lugar de implementar el interfaz JavaSamplesClient heredaré la clase abstracta AbstractJavaSamplerClient que ya implementa la mayoría de los métodos.

Implementaré los métodos getDefaultParameters() y runTest(JavaSamplerContext context)

5. En el método getDefaultParameters()configuro los parámetros que quiero usar por defecto. En mi caso:

6. En el método lanzaré el Test runTest(JavaSamplerContext context) que tendrá este aspecto:

NOTA:es recommendable testar el código antes de meterlo en JMeter 😀

7. Genero el JAR de la clase Sampler bien desde Eclipse, bien desde Maven y la dejo en la carpeta /lib/ext de %JMETER_HOME%

8. Lanzo el JMeter, selecciono y creo un Test Plan, dentro de Thread Group pongo 10 hilos y en Muestreador Java Request:

Directamente me aparecerá: mi Sampler:

Añado un Summary Report

9. Y ejecuto mi Java Request que ejecuta sin problema:

Si voy a View Results Tree veo:

¿Fácil verdad? 🙂