Pruebas de performance: diseño, ejecución y resultados - SebaUSM/GRUPO02-2025-PROYINF GitHub Wiki

1. Introducción

El objetivo de estas pruebas es evaluar la capacidad del sistema para responder bajo carga en tres escenarios típicos: consulta de boletines, generación de resultados vía OpenAI, y solicitudes simultáneas mixtas. Se ejecutará tan solo una prueba, la cual será la de generación de resultados vía OpenAI, usando Apache JMeter.


2. Diseño de pruebas

Prueba Descripción Objetivo Carga simulada Métrica esperada
Prueba 1 Acceso concurrente a listado de boletines (GET /boletines) Verificar estabilidad y tiempo de respuesta al consultar la lista de boletines 30 usuarios concurrentes durante 1 minuto Tiempo medio de respuesta < 1000 ms
Prueba 2 Búsqueda semántica por palabra clave (POST /buscar) Evaluar tiempo de respuesta de la API con OpenAI bajo múltiples solicitudes 10 usuarios simultáneos haciendo búsquedas distintas Tiempo medio < 3000 ms; tasa de error 0%
Prueba 3 Carga mixta (GET y POST combinados) Verificar estabilidad del sistema cuando se mezclan consultas y análisis simultáneos Ramp-up de 10 a 40 usuarios, 60% GET, 40% POST No degradación mayor al 25% en rendimiento

3. Ejecución de prueba

Prueba 2 – POST /buscar

  • Configuración:
    • 10 usuarios
    • Cada uno hace una búsqueda con palabras clave distintas
    • Se mide el tiempo de respuesta desde la petición hasta la recepción del resultado procesado por OpenAI
  • Resultados:
    • Para la primera palabra "arándanos":

      • Tiempo medio: 5823 ms

      • Tiempo máximo: 8392 ms

      • Errores: 0% -Ejecución:Palabra 1

      • Gráfico:

    • Para la segunda palabra "clima":

      • Tiempo medio: 6268 ms
      • Tiempo máximo: 7539 ms
      • Errores: 0%
      • Ejecución: Palabra 2
      • Gráfico:
    • Para la tercera palabra "archipiélago:"

      • Tiempo medio: 7781 ms

      • Tiempo máximo: 17461 ms

      • Errores: 0%

      • Ejecución: Palabra 3

      • Gráfico:

    • Para la cuarta palabra "":

      • Tiempo medio: 10215 ms
      • Tiempo máximo: 25303 ms
      • Errores: 0% -Ejecución:Palabra 4
      • Gráfico:

Gráfico resumen resultados:


4. Análisis y recomendaciones

  • El sistema se comporta correctamente bajo condiciones normales y moderadamente exigentes.
  • La búsqueda con OpenAI, aunque más costosa en tiempo, se mantiene dentro de rangos aceptables.
  • Se recomienda:
    • Incorporar caché si el volumen de búsquedas crece.
    • Monitorizar uso de recursos (CPU/RAM).
    • Realizar pruebas con mayor concurrencia en futuros hitos.

5. Conclusión

Las pruebas, si bien no generaron fallas ni errores directos, arrojaron tiempos de respuesta que superan lo que esperábamos y que consideramos aceptable desde la perspectiva del usuario final. Esto puede deberse a que al aumentar la carga simultánea sobre el sistema, se produce una saturación de recursos, lo que incrementa la latencia, o también puede deberse a la calidad de la api, ya que, si bien esta es de pago de OpenAI, puede que pagando por una mejor los datos sean procesados más rápido o mejores mucho más su funcionamiento.