Tutorial de pruebas de carga de JMeter



Descripción general de las pruebas de carga de JMeter

Cada aplicación web tiene una capacidad de carga máxima, y superarla puede provocar ralentizaciones, errores o ineficacia general. Las pruebas de carga son cruciales para evaluar el rendimiento de una aplicación web. Este tipo de pruebas es un componente vital del ciclo de vida del desarrollo de software y aplicaciones, especialmente cuando se trata de aplicaciones web, sitios o API que se espera que manejen un tráfico de usuarios significativo. Para garantizar que sus aplicaciones puedan funcionar en condiciones de tráfico alto o sostenido, es esencial emplear herramientas de pruebas de rendimiento. Apache JMeter es una opción popular para este propósito, y si eres nuevo en las pruebas de rendimiento, es posible que te preguntes qué es JMeter. ¿Y cómo funciona JMeter? Veremos JMeter y cómo usar JMeter para las pruebas de rendimiento.

¿Qué es la prueba de carga?

Las pruebas de carga son un tipo de pruebas de rendimiento para determinar cómo se comporta la aplicación web durante las condiciones de carga normales y máximas o incluso para encontrar el punto de interrupción. Es la práctica de simular el uso o la carga en el mundo real en cualquier software, sitio web, aplicación web, API o sistema para analizar e identificar factores como la capacidad de respuesta, la degradación y la escalabilidad.

Herramientas para pruebas de carga

Las herramientas de pruebas de carga son extremadamente importantes para optimizar sus necesidades de pruebas de carga y mejorar su rendimiento digital. No hay fin a la cantidad y variedad de herramientas y plataformas en el mercado hoy en día, con una variedad de características. Hay muchas herramientas de prueba de carga como:

    • LoadView
    • Apache JMeter
    • Webload
    • Loadrunner
    • Tricentis NeoLoad

Para esta guía, veremos las pruebas de carga de JMeter. Responderemos algunas preguntas como: qué es JMeter, cómo hacer pruebas de carga de JMeter y cómo usar JMeter para las pruebas de rendimiento de la API.

¿Qué es JMeter?

Apache JMeter, también conocido como JMeter, es un software de código abierto ampliamente utilizado diseñado como una aplicación Java 100% pura para realizar pruebas de carga del comportamiento funcional y evaluar el rendimiento. Es una herramienta preferida entre los desarrolladores y los equipos de desarrollo de software para las pruebas de rendimiento debido a su amplia documentación, su sólido apoyo de la comunidad y las mejores prácticas establecidas. Además, al ser gratuito y de código abierto, es una opción rentable, pero dado que es 100% Java, es posible que su equipo necesite tiempo y recursos adicionales para iniciar los procesos de prueba.

Las pruebas de carga de JMeter están diseñadas para realizar pruebas de carga sobre el comportamiento funcional y medir su rendimiento. Puede utilizar JMeter para analizar y medir el rendimiento de las aplicaciones o servicios web. Al analizar los datos recopilados y generar informes, puede observar el comportamiento de la aplicación e identificar los cuellos de botella de rendimiento, lo que proporciona información valiosa sobre las áreas en las que se requieren mejoras en la aplicación.

¿Por qué usar JMeter?

  • Código abierto: JMeter es completamente gratuito y los desarrolladores pueden usar el código fuente.
  • Independiente de la plataforma: JMeter es 100% y se puede ejecutar en múltiples plataformas.
  • Compatibilidad con multiprotocolo: JMeter soporta tanto las pruebas de aplicaciones web como el rendimiento del servicio de base de datos. Es compatible con todos los protocolos básicos como HTTP, JDBC, LDAP, SOAP, JMS y FTP.
  • Grabación y reproducción: JMeter le permite grabar la actividad del usuario en un navegador para simularla y luego puede reproducir la grabación.
  • Informes personalizables: Visualice los resultados de sus pruebas en diferentes formatos, como gráficos, tablas o archivos de árbol y registro.
  • Apoyo de la comunidad: Hay una gran comunidad con ayuda, orientación y tutoriales.

Cómo realizar pruebas de carga de JMeter

Veamos algunos de los pasos involucrados en cómo usar JMeter para pruebas de carga y cómo configurar una prueba de carga básica.
 

Paso 1: Verificar la compatibilidad del sistema para la instalación de JMeter

Antes de continuar con la instalación de JMeter, es crucial asegurarse de que su sistema cumpla con los requisitos. JMeter está basado en Java, por lo que debe tener Java 8 o una versión superior instalada en su sistema. Confirme que su sistema operativo es compatible con JMeter. JMeter está diseñado para funcionar en varios sistemas operativos, incluidos Windows, Linux y macOS.

Una vez que haya confirmado que su sistema cumple con estos requisitos básicos, estará listo para continuar con la instalación de JMeter. Esto garantiza una configuración fluida y un rendimiento óptimo durante las pruebas de carga.
 

Paso 2: Descargar e instalar JMeter para su sistema

Después de asegurarse de que su sistema cumple con todos los requisitos necesarios, proceda a descargar la última versión de JMeter, eligiendo entre archivos binarios o archivos fuente según sus necesidades específicas. Los archivos binarios, que comprenden versiones precompiladas de JMeter, se pueden ejecutar de inmediato, mientras que los archivos fuente brindan flexibilidad para la configuración y compilación manual por parte de desarrolladores o equipos. Por lo general, se prefieren las versiones binarias para facilitar la instalación. Hay disponibles diferentes tipos de descarga de archivos, como .zip y .tgz.

Una vez que hayas seleccionado tu versión preferida, descárgala en tu sistema. A continuación, puede abrir el archivo, moverlo a una ubicación designada o crear una nueva carpeta para acceder a él en el futuro. Comience el proceso de extracción, que puede tardar unos minutos. Tenga en cuenta que los pasos de instalación pueden variar según su sistema operativo, pero una vez instalado, la funcionalidad de JMeter sigue siendo consistente.
 

Paso 3: Crear un plan de prueba de carga

Los usuarios de JMeter pueden comenzar a crear su plan de prueba de carga desde cero o también seleccionar entre varias plantillas de plan de prueba ubicadas en el menú desplegable Archivo. Las plantillas incluyen el plan de pruebas SOAP WebService, el plan de pruebas web básico y avanzado, el plan de pruebas FTP (protocolo de transferencia de archivos), el plan de pruebas funcionales y muchas otras. Estas plantillas de prueba incluirán todos los elementos, secciones y campos específicos necesarios que usará para crear y compilar el plan de pruebas de carga.

Para crear un plan de pruebas, simplemente vaya a Archivo y seleccione Nuevo o seleccione el botón Nuevo de la barra de herramientas. Es importante tener en cuenta que debe ejecutar JMeter en modo GUI para crear el plan de prueba. El CLI, o interfaz de línea de comandos, se utiliza para ejecutar la prueba de carga. A continuación, hablaremos sobre cómo especificar el número de usuarios para la prueba de carga, que también se conoce como grupo de subprocesos.
 

Paso 4: Agregar y configurar el grupo de subprocesos en JMeter

Para incorporar un grupo de subprocesos, siga estos pasos: Haga clic con el botón derecho en Plan de pruebas, coloque el cursor sobre Subprocesos (usuarios) y haga clic en Grupo de subprocesos.

En el cuadro de diálogo Grupo de subprocesos siguiente, puede editar varias propiedades de subprocesos, como Número de subprocesos (usuarios), Período de aceleración (en segundos) y Recuento de bucles (iteraciones de prueba). Además, especifique acciones como retrasos, establezca las horas de inicio y finalización de las pruebas y defina las respuestas a los errores de Sampler. Las propiedades del subproceso son:

    • Número de subprocesos: representa la cantidad de usuarios virtuales que se conectan al servidor.
    • Período de puesta en marcha: indica el tiempo que JMeter tarda en realizar la transición del número especificado de subprocesos a un estado de ejecución.
    • Recuento de bucles: indica el número de veces que cada subproceso ejecuta la tarea.
    • Recuento de bucles infinito: Cuando se activa, no tiene en cuenta el recuento de bucles, lo que provoca un bucle infinito hasta que se detiene manualmente.
    • Retrasar la creación de subprocesos hasta que sea necesario: retrasa la creación de subprocesos hasta que se alcanza un valor especificado (en segundos).
    • Programador: Habilita las configuraciones del programador para programar pruebas en momentos específicos cuando se activa.

Este paso permite una personalización meticulosa de los parámetros de la prueba de carga, lo que proporciona a los usuarios control sobre la simultaneidad, la duración y las condiciones de prueba específicas.
 

Paso 5: Configurar la muestra en JMeter

En JMeter, los muestreadores permiten a JMeter enviar diferentes tipos de solicitudes. Por ejemplo, pueden ser una solicitud HTTP (para un sitio web, una aplicación o una API), una solicitud FTP, una solicitud SMTP, una solicitud TCP y muchas otras. A partir de aquí, se introducen detalles adicionales como el protocolo (HTTP/S), el nombre del servidor o IP, la ruta (para una página web específica) y el tipo de solicitud, como GET, POST, HEAD, PUT, etc., que se puede utilizar para las pruebas de carga de la API.
 

Paso 6: Configurar agentes de escucha

Para analizar los resultados de Sampler en JMeter, el siguiente paso consiste en configurar lo que se conoce como Listeners. En la ventana Plan de pruebas de JMeter, puede elegir entre varios agentes de escucha, incluidos Informe de resumen, Gráfico agregado, Ver árbol de resultados, Ver resultados en tabla y muchos otros, para inspeccionar y analizar minuciosamente los resultados de sus pruebas. Además, tiene la flexibilidad de agregar varios oyentes a un plan de prueba de JMeter. Una vez hecho esto, su plan de prueba está listo y puede proceder a ejecutar la prueba.
 

Paso 7: Grabación de los scripts de prueba de carga

Si su objetivo es realizar pruebas de carga básicas a nivel de protocolo o HTTP sin una configuración extensa, no se requiere ninguna configuración adicional. Sin embargo, si necesita una prueba que se parezca mucho a las acciones de su usuario, deberá utilizar la grabadora de scripts de prueba HTTP(S) en JMeter.

En el grupo de subprocesos, debe agregar el controlador de grabación. Este controlador le permite navegar por un sitio o una aplicación, registrando sus acciones a través de solicitudes HTTP/S. También puede incluir varios controladores de grabación por página, lo que le ahorra tiempo para no tener que agregar manualmente cada solicitud.

La desventaja de esto es que su grabación se realiza con solicitudes HTTP/S y no está grabando dentro de un navegador real desde la perspectiva del usuario. También puede grabar navegadores utilizando el servidor proxy JMeter, pero esto puede ser un proceso tedioso y difícil. Si está buscando una solución más fácil e intuitiva, puede optar por usar LoadView, que tiene EveryStep Web Recorder. La grabadora de LoadView proporciona secuencias de comandos de apuntar y hacer clic utilizando navegadores reales sin la configuración compleja y lenta de JMeter.
 

Paso 8: Ejecutar y ejecutar la prueba de carga

Una vez que haya configurado todos los detalles y la configuración de la prueba de carga, guarde el plan de pruebas. Luego, simplemente puede seleccionar el botón Ejecutar en la barra de herramientas y comenzará su prueba. Recuerde ejecutar la prueba en el modo CLI para obtener mejores resultados.
 

Paso 9: Ver los resultados de la prueba de carga

Verá los resultados de la prueba en la tabla, pero esto puede depender de su oyente. Los resultados incluirán métricas adicionales, como el tiempo (en milisegundos), el estado (muestra las respuestas y los errores válidos), los bytes y los bytes enviados, la latencia y el tiempo de conexión. Al examinar estos resultados, puede identificar las ubicaciones de cualquier error o instancia de tiempos de carga lentos.

Cómo realizar pruebas de carga de API con JMeter

Anteriormente, discutimos las instrucciones paso a paso sobre cómo configurar una prueba de carga basada en protocolo en un sitio web o aplicación con JMeter. Ahora cubriremos las pruebas de diferentes API, como las API SOAP y REST, con JMeter. Los procedimientos de instalación y configuración siguen siendo coherentes con los pasos mencionados anteriormente. Sin embargo, nos centraremos en los aspectos fundamentales de las pruebas de API y discutiremos consideraciones importantes al realizar pruebas de API con JMeter.
 

Pruebas de API REST con JMeter

Las API RESTful, abreviatura de API de transferencia de estado representacional, desempeñan un papel vital en el desarrollo de diversos servicios web. A diferencia de las API SOAP, REST no es un protocolo, sino un estilo arquitectónico que se basa en URI (identificadores uniformes de recursos) y el protocolo HTTP.
 

Paso 1: Crear un plan de prueba de carga

Para empezar, abra JMeter. Verá que se abrirá una nueva ventana Plan de pruebas. Si ya tiene JMeter abierto, también puede seleccionar el botón Nuevo de la barra de herramientas principal para crear un nuevo plan de pruebas.
 

Paso 2: Agregar y configurar el grupo de subprocesos en JMeter

De forma similar a la sección anterior, la ventana Grupo de subprocesos es donde puede agregar el número de usuarios (subprocesos), establecer el tiempo de puesta en marcha y el número de iteraciones de prueba (recuento de bucles) y editar muchas más propiedades.
 

Paso 3: Configurar Sampler

A continuación, necesitamos agregar el Sampler. Puede elegir entre algunos muestreadores preconfigurados en JMeter o seleccionar uno de los suyos. Para este ejemplo, usaremos una opción preconfigurada.

Para iniciar este proceso, haga clic con el botón derecho en el grupo de subprocesos y active una ventana desplegable. Elija Add (Agregar) y, a continuación, Sampler (Muestreador). Aparecerá una lista de opciones de Sampler. Para las pruebas de API, opte por HTTP Request, abriendo la ventana de configuración donde puede asignar un nombre a la prueba y configurar los parámetros para la prueba de la API REST. Vale la pena mencionar que la ventana de solicitud HTTP está dividida en secciones Básica y Avanzada. Para esta prueba, nos concentraremos en la configuración básica. Varios campos, incluidos el protocolo, el nombre del servidor o IP, el número de puerto, la solicitud HTTP (GET/POST/HEAD/PUT/DELETE, etc.), los parámetros y más, están disponibles para la configuración.

Para comenzar, ingrese la URL de la API en el campo Nombre del servidor o IP (solo el nombre de dominio), junto con el protocolo adecuado y, en el campo Ruta, agregue la ruta de la API.

Si se trata de una solicitud GET, seleccione GET en la lista de solicitudes HTTP.

Si tiene ciertos parámetros, como una página específica, puede agregar esa parte de la dirección URL en el campo Parámetros.

También puede incluirlo en el campo Ruta, sin embargo, al agregarlo al campo Parámetros, tiene opciones de campo adicionales, como ¿Codificación de URL?, Tipo de contenido e Incluir es igual a?

Para ciertas solicitudes, es necesario incluir encabezados de solicitud. Para ello, vaya a la solicitud HTTP en la ventana Plan de pruebas. Al hacer clic con el botón derecho se revelará un menú desplegable; seleccione Agregar y, a continuación, Elemento de configuración. Esta acción abre las opciones disponibles. En este caso, opte por HTTP Header Manager. La siguiente ventana del Administrador de encabezados HTTP le permite ingresar los encabezados de la API. Después de configurar los ajustes, continúe con el siguiente paso.
 

Paso 4: Agregar oyentes

Para incluir agentes de escucha, simplemente haga clic con el botón derecho en el grupo de subprocesos, elija Agregar y, a continuación, Agente de escucha. Esta acción abre un menú desplegable que ofrece más de 15 opciones para seleccionar. Entre las opciones más populares se incluyen Ver árbol de resultados y Ver resultados en tabla. Es importante tener en cuenta que los agentes de escucha que ofrecen representación gráfica, como Ver árbol de resultados, pueden consumir más memoria y CPU. Después de agregar los agentes de escucha, guarde el plan de pruebas.
 

Paso 5: Ejecute la prueba y vea los resultados

Una vez que haya configurado y guardado los detalles y la configuración de la prueba de carga, inicie la prueba haciendo clic en el botón Ejecutar de la barra de herramientas. La ventana mostrará los resultados de Sampler, presentando varios detalles, datos y métricas, como latencia, códigos de respuesta, tiempo de conexión, etc., relacionados con la prueba de la API de REST.
 

Pruebas de API SOAP con JMeter

SOAP (Simple Object Access Protocol) se distingue de una API REST, ya que opera bajo su propio protocolo. Al realizar pruebas de carga de las API SOAP, surgen consideraciones específicas, como la seguridad y el cumplimiento, los requisitos de ancho de banda (las API SOAP suelen exigir más recursos) y aspectos funcionales como la lógica de reintento, que está ausente en las API REST.
 

Paso 1: Crear un plan de prueba de carga

JMeter ofrece una gama de plantillas de planes de pruebas a las que se puede acceder a través del menú o el icono de plantillas en la barra de herramientas principal. Una de las opciones disponibles es “Creación de un plan de prueba de SOAP WebService”. Al elegir esta opción, se generará y abrirá el plan de pruebas correspondiente. Como se trata de una plantilla, ciertos campos contendrán valores de marcador de posición que requieren que ingrese los datos y la información relevantes.
 

Paso 2: Entrada de datos

De forma similar a lo que hemos comentado en la configuración de las API de REST, deberá introducir el número de usuarios (subprocesos), el período de puesta en marcha y los bucles (iteraciones de prueba) para las pruebas de la API de SOAP.

Dentro de un subgrupo del grupo de subprocesos principal, puede acceder a la configuración de la solicitud HTTP, similar a la configuración de la API de REST que cubrimos anteriormente. Sin embargo, el diseño de esta sección difiere, ya que de forma predeterminada se muestra el cuerpo de la solicitud de la API SOAP. Esta sección también incluye subsecciones para el Administrador de encabezados HTTP y las aserciones de respuesta. De forma similar a la configuración de la API de REST, puede incorporar elementos de configuración adicionales, como el Administrador de autorización HTTP, si es necesario incluir detalles de autorización específicos.
 

Paso 3: Agregar muestra de solicitud HTTP

Para una prueba de carga de la API de SOAP, querrá agregar el muestreador de solicitud HTTP. En esta ventana, deberá ingresar los detalles relevantes, incluido el nombre del servidor o IP, la ruta, la solicitud HTTP, el número de puerto y los datos del cuerpo de la solicitud SOAP.
 

Paso 4: Agregar oyentes

Una vez que haya configurado el plan de pruebas, deberá agregar sus agentes de escucha, que mostrarán los resultados de las pruebas. Una vez más, puede agregar tantos agentes de escucha como desee y según corresponda para la prueba de carga de la API de SOAP.
 

Paso 5: Ejecuta tu prueba

Una vez que se hayan establecido la configuración y los ajustes del plan de pruebas, finalmente puede ejecutar la prueba de carga de la API de SOAP y revisar los resultados una vez que haya finalizado.

Conclusión

A estas alturas, debería haber aprendido qué es JMeter, cómo realizar pruebas de carga de JMeter y cómo realizar pruebas de carga para API con JMeter. Como puede ver, la configuración de pruebas de carga con JMeter viene con muchos pasos y opciones de configuración diferentes, lo que equivale a mucho tiempo dedicado a configurar pruebas, en lugar de ejecutarlas. Aunque JMeter es una solución gratuita y de código abierto, es posible que deba buscar otras herramientas de prueba de carga que brinden mejores funciones y se adapten a las necesidades de su negocio.

LoadView: La mejor alternativa a JMeter

LoadView se destaca como una de las principales soluciones de pruebas de rendimiento pagas disponibles en la actualidad, que ofrece una variedad de funciones. Estos incluyen una grabadora de scripts de apuntar y hacer clic, acceso a una red global de servidores de inyección de carga y la capacidad de configurar varios escenarios de curva de carga para mejorar la flexibilidad de las pruebas. A diferencia de JMeter, LoadView no requiere infraestructura ni consideraciones adicionales, ya que todo se gestiona sin problemas. A diferencia de JMeter, que se limita a pruebas de carga a nivel de protocolo, LoadView emplea navegadores reales, lo que le permite evaluar el rendimiento real de sitios, aplicaciones y API críticos. Además, LoadView ofrece varias opciones, como incluir en la lista blanca las direcciones IP de proxy estáticas o utilizar un agente in situ, lo que permite realizar pruebas en las aplicaciones que se encuentran detrás del firewall y proporciona una mayor flexibilidad para las pruebas de rendimiento.

LoadView ofrece informes y paneles de rendimiento fáciles de usar, que ofrecen información clara sobre los factores que contribuyen a un rendimiento subóptimo. Además, incluye un video de referencia para pruebas de páginas web y aplicaciones web, lo que permite una comparación directa con los informes para visualizar la perspectiva del usuario. LoadView ofrece planes flexibles de mes a mes y anuales, acompañados de soporte 24×7 para todos los clientes, independientemente del plan elegido, lo que la distingue de otras herramientas del mercado.

Lleve sus pruebas de carga a la
Siguiente nivel

Experimente características sin igual con escalabilidad ilimitada. Sin tarjeta de crédito, sin contrato.