⚡ Alternativa moderna a Apache JMeter

Performance testing que migra tu JMeter y pesa una fracción

Importa tu .jmx, entiende qué migró y qué no, ejecútalo local desde la app o el CLI, obtén reportes que reconoces y llévalo a CI — con un motor en Rust/Tokio que usa ~50× menos memoria.

Reporte de perfkit con KPIs y series temporales
~50×
menos memoria que JMeter*
100%
fidelidad en el ejemplo de import
3+1
formatos de reporte + quality gate
CLI + UI
misma ejecución, terminal o app nativa

Principio rector

“Migré, entendí qué pasó y lo llevé a CI sin reescribir todo”

Capacidades

Todo lo que esperas, repensado

Un motor moderno, una app nativa para QA y un CLI listo para pipelines.

🔄

Importa tu JMX

Parser de JMeter → IR canónico con reporte de fidelidad por elemento (migrated / assisted / unsupported / ignored). Nunca falla en silencio.

⚙️

Motor Rust + Tokio

VUs asíncronos, ramp-up/hold/ramp-down, timers, assertions y extractores. Medición con reloj monotónico y agregación fuera del hot path.

📊

Reporte por pestañas

Resumen, latencia (curva de percentiles, histograma, TTFB, Apdex), capacidad (saturación, bytes), errores, SLA, heatmap. HTML offline + JSON + JUnit.

🔎

Inspección de peticiones

Captura request/response por petición (como el View Results Tree) con redacción de secretos y tope de memoria configurable.

🖥️

App nativa

Tauri + React: crea o importa planes, edítalos, prueba una sola petición, ejecuta con dashboard en vivo y visualiza resultados — sin escribir código.

⏱️

CLI para CI

import · validate · debug · run · gate con exit codes confiables, logs y umbrales. Reportes como artefactos de pipeline.

🌐

Distribuido

Coordinator/worker que reparte la carga entre nodos (no la duplica) y consolida métricas.

📈

Histórico y baselines

Guarda corridas, fija un baseline y detecta regresiones y tendencias entre ejecuciones.

🔐

Gobernanza

Redacción de secretos, plugins WASM firmados e IA opcional con SaaS apagado por defecto — nada sale sin tu opt-in.

perfkit vs JMeter

Por qué puede ser mejor

Mismo flujo QA que ya conoces, con un motor moderno detrás.

AspectoperfkitApache JMeter
RuntimeRust + Tokio (async)Java/JVM (un hilo por VU)
Memoria por carga~50× menos en el benchmark*Alta (JVM + hilos)
InterfazApp nativa moderna (Tauri)GUI Swing pesada
Formato del planIR legible (YAML/JSON) + binario + JMXXML verboso
MigraciónImporta tu .jmx con reporte de fidelidad
Inspección a alta cargaCaptura acotada (protege memoria)View Results Tree (revienta memoria)
CIExit codes + quality gate nativosRequiere configuración/plugins
ReporteHTML offline + JSON + JUnit + analíticaListeners / plugins

* Benchmark local reproducible (mismo plan y target). El throughput sale a la par cuando el target satura; la ventaja medida es la memoria. En honor a la verdad: JMeter sigue siendo más maduro en cobertura de protocolos y ecosistema de plugins — perfkit prioriza el flujo HTTP/QA y una migración creíble.

Casos de uso

Para qué lo usas

🚦 Smoke test

Una corrida corta con captura para validar que el flujo responde antes de la prueba real.

🏋️ Prueba de carga

Sube VUs con ramp-up y mide percentiles, throughput, errores y el punto de saturación.

✅ Baseline en CI

Guarda un baseline y falla el pipeline (exit code) si una corrida regresiona.

🔀 Comparar entornos

El mismo plan contra staging/local cambiando solo la URL base.

🐞 Depurar un endpoint

Prueba una sola petición e inspecciona request/response y variables al vuelo.

📦 Migrar desde JMeter

Importa tu suite .jmx y entiende qué migró antes de invertir en reescribir.

La app

Hecha para QA, no para programar

Primera pantalla operativa, sin landing interna, vista YAML opcional.

Empezar

En marcha en minutos

Desde la terminal o la app nativa.

CLI

# importar → validar → ejecutar → gate
perfkit import jmx plan.jmx -o plan.yaml
perfkit validate plan.yaml
perfkit run plan.yaml --vus 50 --duration 20 \
  --out reports/run-001
perfkit gate reports/run-001/summary.json \
  --thresholds thresholds.yaml

App nativa

# requiere Rust + Node/pnpm
cd ui && pnpm install
pnpm tauri dev        # desarrollo
pnpm tauri build      # binario release

# o solo construir el workspace
cargo build --workspace

Léeme y código en GitHub →

Comunidad

¿Encontraste algo o tienes una idea?

Abre un issue con la plantilla adecuada — están diseñadas para entenderse y priorizarse rápido.

Ver todos los issues