jMeter

Apache jMeter es una aplicación gratuita y de código abierto diseñada para pruebas de carga y rendimiento. La funcionalidad de jMeter se extiende a través de muchas aplicaciones, servidores y tipos de protocolos diferentes. En el contexto de las aplicaciones web, podríamos sentir la tentación de compararlo con el navegador. Sin embargo, jMeter funciona con HTTP y https a nivel de protocolo. No representa HTML ni ejecuta JavaScript. Aunque jMeter es principalmente una aplicación GUI, se puede instalar fácilmente y ejecutar sus pruebas en modo consola. Esto lo convierte en una herramienta conveniente de elección para construir rápidamente nuestras pruebas en modo GUI y luego ejecutarlas en una consola del servidor más adelante.

Suponiendo que estamos usando la instalación de Ubuntu 16.10 (Yakkety Yak), instalar jMeter como herramienta es fácil, como se muestra en la siguiente línea de comando:

sudo apt-get -y install jmeter

Sin embargo, esto podría no darnos la última versión de jMeter, en cuyo caso, podemos obtener una de la página oficial de descarga de jMeter (http://jmeter.apache.org/download_jmeter.cgi):

wget
http://ftp.carnet.hr/misc/apache//jmeter/binaries/apache-jmeter-3.2.tgz
tar -xf apache-jmeter-3.2.tgz

Usando este segundo método de instalación, encontraremos el ejecutable jMeter en apache-jmeter-3.2/bin/jmeter.

Writing test

A lo largo de este tutorial, usamos un proyecto simple con algunas clases en el directorio src/Foggyline para demostrar el uso de PHPUnit, Behat y phpspec testing. Esos, sin embargo, no pueden cumplir el propósito de este tipo de pruebas. Como no tenemos ninguna página HTML para mostrar en el navegador, nuestro enfoque con jMeter está en iniciar un plan de prueba web integrado simple para comprender sus componentes y cómo podemos ejecutarlo más adelante.

Escribir pruebas jMeter para aplicaciones web requiere una comprensión básica de varios conceptos clave, que son los siguientes:

  • Grupo de subprocesos: define un grupo de usuarios que ejecutan un caso de prueba específico en nuestro servidor web. La GUI nos permite controlar las diversas opciones de Grupo de subprocesos, como se muestra en la siguiente captura de pantalla:
  • Valores predeterminados de solicitud HTTP: establece los valores predeterminados que utilizan nuestros controladores de solicitud HTTP. La GUI nos permite controlar varias opciones de valores predeterminados de solicitud HTTP, como se muestra en la siguiente captura de pantalla:
  • Solicitud HTTP: envía la solicitud HTTP/HTTPS a un servidor web. La GUI nos permite controlar las diversas opciones de Solicitud HTTP, como se muestra en la siguiente captura de pantalla:

HTTP Cookie Manager: almacena y envía cookies, como lo hace un navegador web. La GUI nos permite controlar las diversas opciones de HTTP Cookie Manager, como se muestra en la siguiente captura de pantalla:

Administrador de encabezado HTTP: esto agrega o anula los encabezados de solicitud HTTP. La GUI nos permite controlar varias opciones del Administrador de encabezado HTTP, como se muestra en la siguiente captura de pantalla:

Resultados del gráfico: Esto genera un gráfico con todos los tiempos de muestra trazados. La GUI nos permite controlar las diversas opciones de Resultados de gráficos, como se muestra en la siguiente captura de pantalla:

Nunca debemos usar el componente de escucha de Resultados de gráficos durante
prueba de carga de producción ya que consume mucha memoria y recursos de CPU.

Lo mejor de jMeter es que ya proporciona varias plantillas de plan de prueba diferentes.
Podemos generar fácilmente un plan de prueba web simplemente siguiendo estos pasos:

1-Haga clic en el archivo | Menú Plantillas … debajo del menú principal de la aplicación, como se muestra aquí:

Esto a su vez activa la pantalla de selección de Plantillas:

2-Al hacer clic en el botón Crear debería comenzar un nuevo plan de prueba, como se muestra en la siguiente captura de pantalla:

Si bien la prueba está bien como está, sigamos adelante y cambiemos algunas cosas antes de ejecutarla:

  1. Haga clic con el botón derecho en View Results Tree y haga clic en Remove.
  2. Haga clic derecho en build-web-test-plan y Add | Listener | Graph Results, luego configure Filename como jmeter-result-tests.csv, de la siguiente manera:

3.Haga clic en Scenario 1 y edite el Loop Count para valorar

4.Con estas modificaciones en su lugar, hagamos clic en File | Save en el menú principal y nombre nuestra prueba web-test-plan.jmx.

La prueba de salida ahora está lista para ejecutarse. Si bien la prueba en sí no será prueba de carga de nuestro propio servidor en este caso, sino de ejemplo.org, el valor de este ejercicio radica en comprender cómo construir la prueba a través de una herramienta GUI, ejecutarla a través de la consola y generar los resultados de la prueba registro para su posterior inspección.

Ejecutando pruebas

Ejecutar una prueba de jMeter a través de una consola es bastante fácil, como muestra el siguiente comando:

jmeter -n -t web-test-plan.jmx

El parámetro -n, también funciona con –nongui, significa ejecutar JMeter en modo nongui.
Mientras que, el parámetro -t que también funciona con –testfile, representa el archivo de prueba jmeter (.jmx) para ejecutarse.

El resultado debería verse en la siguiente captura de pantalla:

Una mirada rápida al archivo jmeter-result-tests.csv revela la estructura y los datos capturados:

Si bien el ejemplo demostrado aquí se basa en un plan de prueba predeterminado con algunas modificaciones menores, las capacidades generales de Apache jMeter pueden enriquecer toda la experiencia de prueba por múltiples factores.

Comparte