-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Rodny Estrada edited this page Dec 4, 2025
·
1 revision
Welcome to the stressor wiki!
Explicar de forma clara cómo usar, mantener y mejorar el proyecto.
-
Requisitos:
- Node.js >= 16
- pnpm o npm
- (Opcional para Auditorías) Google Chrome instalado; puedes especificar su ruta vía la variable de entorno
CHROME_PATHo el archivo.chromepathen la raíz del proyecto.
-
Instalación del paquete (como dependencia):
npm install stressor-core
# o
pnpm add stressor-core- Construcción local del proyecto (si vas a desarrollar en este repositorio):
pnpm install
pnpm buildScripts disponibles:
build(compila TypeScript) yprepublishOnly.
Stressor orquesta pruebas de carga (k6) y auditorías (Lighthouse) mediante adaptadores y un pipeline tipado.
import { Stressor } from 'stressor-core';
const stressor = new Stressor({
name: 'mi-test',
load: {
scenario: {
executor: 'ramping-vus',
stages: [
{ duration: '30s', target: 10 },
{ duration: '1m', target: 50 },
],
},
options: {
vus: 50,
duration: '1m30s',
},
},
});
const report = await stressor.run();{
"id": "test-completo",
"name": "Prueba Ecommerce",
"load": {
"scenario": {
"executor": "constant-vus",
"vus": 20,
"duration": "5m"
},
"options": {
"thresholds": {
"http_req_duration": ["p(95)<500"]
}
}
},
"audit": {
"url": "https://mi-sitio.com",
"categories": ["performance", "seo"],
"settings": {
"formFactor": "desktop"
}
}
}-
Load (k6):
-
LoadAdapterConfig:scenario(uno o varios escenarios k6) yoptions(parámetros k6 comovus,iterations,duration,thresholds, etc.). - Genera
LoadAdapterReport: métricas sanitizadas (por ejemplo,http_req_duration, puntos temporales y resumen).
-
-
Audit (Lighthouse):
-
AuditAdapterConfig:urlobligatorio;categories(performance,seo,accessibility,best-practices);settings(formFactor,throttlingMethod,screenEmulation);chrome.chromePathopcional. - Genera
AuditAdapterReport: puntajes por categoría y, opcionalmente, auditorías no perfectas cuandoshowAuditsestrue.
-
-
AdapterPipelinepermite registrar adaptadores y ejecutar en serie o paralelo (options.runInParallel). -
Stressor.run(changes?)fusiona configuración (deepMerge) y ejecuta los trabajos definidos:- Forma corta:
loady/oauditdentro deStressorConfig. - Forma larga:
jobscomo array con entradas{ type: 'load' | 'audit', id, ...config }.
- Forma corta:
- Auditorías Lighthouse requieren Chrome; define la ruta con
CHROME_PATHo.chromepath. - k6-node se usa para construir y ejecutar los escenarios; los resultados se exportan temporalmente en un
.logJSON y se sanitizan.
-
Flujo básico:
- Haz un fork y crea una rama descriptiva.
- Instala dependencias y compila:
pnpm installypnpm build. - Asegúrate de mantener el estilo del código: TypeScript, nombres claros, sin cambios innecesarios.
- Añade pruebas o ejemplos cuando modifiques adaptadores o el pipeline.
- Abre un Pull Request con una descripción clara del cambio.
-
Guías de código:
- Evita complejidad innecesaria; corrige la raíz del problema.
- No agregues cabeceras de licencia nuevas.
- No uses variables de una sola letra.
- Mantén las APIs públicas estables.
-
Entorno y compatibilidad:
- Node >=16.
- Verifica que Lighthouse y Chrome funcionen en tu sistema.
¡Gracias por contribuir! 🚀