Pruebas de rendimiento de sitios web

Pruebas de rendimiento de sitios web
MIN
12 Ene 2024

En este tutorial, cubriremos la creación de un plan de pruebas de rendimiento de aplicaciones web con el que podremos realizar pruebas de rendimiento de aplicaciones web utilizando JMeter. También conocerás los distintos elementos del plan de pruebas necesarios para crear un guión de pruebas, junto con su uso y configuración.

Índice

Requisitos previos para las pruebas de rendimiento

Al crear un plan de pruebas de rendimiento de una aplicación web, debes tener dominadas de antemano las siguientes cosas:

  1. Conocimiento de los escenarios de aplicación empresarial.
  2. Una instancia de aplicación diseñada para pruebas de rendimiento con configuraciones y estado similares a los de producción.
  3. Lista de escenarios seleccionados para las pruebas de rendimiento (ya que no todos los escenarios deben someterse a pruebas de carga).
  4. La carga máxima en producción o el valor previsto de la carga máxima.
  5. La distribución de los usuarios en los distintos escenarios, ya que algunos escenarios se utilizan con más frecuencia que otros. Por tanto, a cada escenario se le asigna un número diferente de usuarios.
  6. El valor del tiempo de pensamiento o de espera que debe incluirse entre algunas operaciones para simular a los usuarios reales: tiempo de pensamiento, tiempo de tecleo, tiempo de lectura y procesamiento de la información, etc.
  7. Una métrica de la prueba de rendimiento que se derivará de los resultados de la prueba, como el tiempo de respuesta, el número de visualizaciones por segundo, etc.

Pasos para crear guiones de pruebas de rendimiento

Para crear un plan de pruebas de rendimiento de una aplicación web, debes realizar los siguientes pasos:

  1. Crea un esqueleto de guión de prueba con un plan de pruebas configurado, grupos de hilos y controladores lógicos.
  2. Crear o registrar peticiones HTTP utilizando el Proxy HTTP.
  3. Añade temporizadores para introducir el tiempo de espera o el tiempo de reflexión entre peticiones.
  4. Añade escuchadores para almacenar y analizar los resultados de las pruebas.
  5. Realiza una prueba en seco con 1 ó 2 usuarios.
  6. Configura una prueba de esfuerzo con el número necesario de usuarios y ejecútala.
  7. Ejecutar y analizar los resultados de las pruebas.

Veamos ahora cómo podemos realizar cada uno de los pasos anteriores en detalle.

Crear el esqueleto del script de prueba

En función del número de grupos de usuarios necesarios para realizar diversas operaciones, añadiremos grupos de hilos y controladores lógicos a nuestro plan de pruebas. Por ejemplo: si tenemos dos grupos de usuarios que realizan operaciones de búsqueda e inicio de sesión en una página web.

A continuación, creamos dos Grupos de Hilos y añadimos diferentes Controladores Lógicos para simular distintas operaciones realizadas por los usuarios. Pasos a seguir:

  • Añade un grupo de hilos al plan de pruebas y nómbralo UsersSearchingKeywords.
  • Añade varios controladores de transacciones como hijos de este Grupo de hilos y nómbralos según las operaciones que realicen, por ejemplo: «Iniciar aplicación», «Buscar palabra clave y pulsar intro», «Cerrar aplicación».
  • Añade otro grupo de hilos y nómbralo UsersLogin.
  • Añade controladores de transacciones a este Grupo de Hilos como – «Iniciar aplicación», «Hacer clic en el enlace Iniciar sesión», «Introducir credenciales de inicio de sesión y hacer clic en el botón Enviar».
  • Añadir configuración

Nuestro plan de pruebas tendrá este aspecto:

Observa que aquí hemos utilizado un controlador de transacciones porque podemos tener varias peticiones HTTP dentro de este controlador, y obtenemos el tiempo de respuesta total de toda la transacción después de realizar la prueba, lo cual es deseable. En función de los escenarios, también podemos añadir distintos controladores lógicos, como un controlador de ciclos, un controlador aleatorio, etc.

Crear o registrar peticiones HTTP

Cuando realizamos una operación, como pulsar un botón, se envían varias peticiones HTTP al servidor. Al programar, necesitamos crear todas estas peticiones para poder determinar el tiempo que tardan en procesarse.

Una forma de hacerlo es añadir diferentes peticiones HTTP y configurarlas con valores como – URL, puerto, tipo de petición (Get, Put, Post, Delete, etc.), cuerpo de la petición, cabecera de la petición, etc. Sin embargo, esto puede ser muy engorroso, a menos que necesitemos probar solicitudes muy limitadas o necesitemos probar una solicitud HTTP concreta.

Para hacerlo con eficacia, JMeter nos proporciona la herramienta HTTP(s) Test Script Recorder, que podemos utilizar para grabar scripts en JMeter directamente realizando operaciones en el navegador.

Cuando iniciamos la grabación de scripts, podemos seleccionar un controlador de operaciones, como «Lanzar aplicación», del controlador HTTP(s) de destino del Grabador de Scripts de Prueba y realizar operaciones como lanzar una aplicación web en el navegador configurado, añadiendo varias peticiones HTTP al controlador seleccionado.

Añadir temporizadores

Podemos añadir temporizadores entre dos controladores de transacción para introducir tiempo de reflexión, por ejemplo, podemos introducir un temporizador con un valor de tiempo de espera de 3 segundos entre los controladores «Lanzar aplicación» y «Buscar palabra clave» para simular el tiempo que tarda el usuario en procesar la respuesta e introducir la palabra clave a buscar.

Añadir oyentes

Podemos utilizar distintos tipos de escuchas para almacenar y analizar los resultados de las pruebas, que hemos estudiado en nuestro tutorial – Escuchas en JMeter.

Prueba de funcionamiento en seco

Antes de ejecutar la prueba con el número real de usuarios, necesitamos ejecutar la prueba en seco con un número muy pequeño de usuarios para verificar la corrección del script.

Configurar y programar una prueba de esfuerzo

Tras validar los scripts, configuramos la prueba de esfuerzo con el número de usuarios necesario y programamos la prueba de esfuerzo.

Ejecución y análisis de la prueba

Una vez completada toda la creación y configuración del guión de la prueba, ejecútala haciendo clic en el icono de reproducción o pulsando el atajo de teclado Ctrl+r. Monitorizaremos el servidor en paralelo mientras se ejecuta la prueba. Una vez finalizada la prueba, podemos guardar y analizar los resultados de la prueba.

Conclusión

Ya hemos visto el plan de pruebas básico de la aplicación web, pero aún quedan algunas cosas de las que ocuparnos:

  1. Durante las pruebas, no debemos introducir valores como – términos de búsqueda y credenciales de inicio de sesión de usuario, etc. Para ello, necesitamos parametrizar los guiones de prueba.
  2. Crear scripts dinámicos y manipular variables de sesión es otra cosa que hay que tener en cuenta al crear scripts. Para resolver estos problemas tenemos el concepto de correlación.