Proyecto
Performance Regression Gate
Proyecto de pruebas de rendimiento que compara un escenario normal con otro degradado y utiliza k6 como quality gate. La demo pública permite consultar ambos escenarios y enlaza con las ejecuciones reales realizadas en GitHub Actions.
Resumen
Proyecto de QA de rendimiento con FastAPI y k6 que detecta regresiones mediante thresholds automáticos e integración con Docker y GitHub Actions.
Stack: Python 3.13, FastAPI, k6, Docker, Docker Compose, GitHub Actions, GitHub Pages, HTML, CSS, JavaScript
Qué hace
Una aplicación puede seguir respondiendo correctamente desde el punto de vista funcional y, al mismo tiempo, sufrir una regresión importante de rendimiento. El proyecto reproduce ese caso de forma controlada y comprueba automáticamente si la latencia, la tasa de errores HTTP y los checks se mantienen dentro de los límites definidos.
Cómo está construido
La aplicación bajo prueba está desarrollada con FastAPI y expone un endpoint /work que puede ejecutarse en modo normal o degradado. En el segundo caso introduce aproximadamente un segundo de latencia artificial. k6 ejecuta las peticiones y aplica tres thresholds: p95 inferior a 500 ms, tasa de errores HTTP inferior al 1 % y más del 99 % de checks correctos. El servicio se ejecuta de forma reproducible mediante Docker y Docker Compose.
Qué valida o automatiza
GitHub Actions construye y levanta la API con Docker Compose, espera a que el endpoint /health esté disponible, instala k6 y ejecuta el escenario seleccionado. En la ejecución normal el p95 fue de 2.03 ms y el quality gate terminó en PASS. En el escenario degradado las respuestas siguieron siendo HTTP 200 y los checks permanecieron al 100 %, pero el p95 alcanzó aproximadamente 1 segundo y el pipeline terminó en FAIL al superar el límite de latencia.
Puntos clave
- Quality gate con thresholds sobre p95 de latencia, tasa de errores HTTP y porcentaje de checks correctos.
- Escenario degradado controlado que demuestra que una aplicación puede seguir respondiendo HTTP 200 y, aun así, fallar por una regresión de rendimiento.
- Entorno reproducible con Docker Compose, ejecución automatizada en GitHub Actions y demo pública desplegada con GitHub Pages.