Por Performate
Por qué los equipos migran a flujos de prueba de carga en escritorio
Razones concretas por las que equipos de API adoptan flujos k6 en escritorio—iteración más rápida, artefactos compartidos y menos glue entre colecciones, corridas y reportes.
Tu colección Postman es la fuente de verdad. La prueba de carga vive en un .js bifurcado en un laptop. Los resultados acaban en una captura pegada en Slack. Cuando producto pregunta «¿podemos repetir la mezcla 70/30 de la semana pasada?», nadie sabe qué variables de entorno hicieron honesta esa corrida.
Los flujos de prueba de carga en escritorio colapsan ese glue: colecciones, escenarios, corridas e informes en un workspace interactivo mientras k6 sigue siendo el motor de ejecución.
El cambio no es evitar terminales. Es acortar ciclos de feedback para equipos de API cuyos artefactos empiezan como peticiones HTTP y terminan como evidencia lista para stakeholders. En esta guía verás por qué los patrones desktop-first ganan en iteración, cómo complementan pipelines CI y cómo luce un flujo práctico de export k6 cuando superas scripts ad hoc.
Por qué los flujos en escritorio vencen al glue CLI disperso—en equipos de API
k6 oficial sigue siendo OSS orientado a automatización (k6 docs intro). Muchos equipos pierden días en overhead de coordinación:
- Deriva de imports: Postman cambia cada semana; el script k6 en una rama no—hasta que un release sorprende.
- Fricción al tunear escenarios: editar bloques executor a mano por cada «prueba 35 req/s» frena hipótesis.
- Fragmentación de reportes: resúmenes JSON, dashboards Grafana y slides cuentan historias distintas de la misma corrida.
- Conocimiento tribal de env: flags
-e TOKEN=...viven en el chat, no en metadata versionada del escenario. - Coste de onboarding: ingenieros nuevos deben aprender k6, wrappers shell y el mapa SLO en hoja de cálculo el día uno.
Piensa en el flujo desktop como un IDE para pruebas de carga—visual donde ayuda explorar, exportable donde CI exige determinismo. CLI-first sigue siendo correcto para gates desatendidos; desktop-first gana en descubrimiento, tuning y revisión compartida antes de congelar artefactos (flujo Postman → k6 en escritorio).
Cuando los flujos solo-terminal aún tienen sentido
CLI puro encaja en gates no atendidos y repos infra-as-code. El dolor aparece cuando humanos iteran escenarios cada hora—tasas, tags, checks—y sincronizan cambios a mano hacia un script que CI nunca ve. Herramientas desktop que exportan k6 unen ambos mundos (flujo integrado Performate).
Implementación práctica en k6: escenarios listos para export desde tuning desktop
Usa la capa desktop para iterar visualmente; exporta las mismas options que ejecutará CI.
Script de ejemplo (ilustrativo—forma exportada—no es prueba lista para producción). Representa lo que una herramienta desktop podría emitir tras tuning visual. Adapta rutas, tasas y umbrales a tu API.
Qué demuestra este ejemplo:
- Escenarios con nombre igual que filas del UI:
browse_catalogysubmit_cartmapean 1:1 al editor—menos confusión en review de PR. - Base URL y tasas por entorno: corridas desktop y CI comparten
CATALOG_RPS/CART_RPSsin re-export por cada ajuste. - Tags preservados en peticiones:
flow:browseyflow:checkoutalinean reportes con lenguaje de producto. - Bloque de umbrales listo para CI: copia thresholds exportados a smoke gates del pipeline sin cambios.
import http from 'k6/http';
import { check, sleep } from 'k6';
const BASE = __ENV.API_BASE || 'https://staging.example.com';
const headers = {
Authorization: `Bearer ${__ENV.TOKEN}`,
'Content-Type': 'application/json',
};
export const options = {
scenarios: {
browse_catalog: {
executor: 'constant-arrival-rate',
rate: Number(__ENV.CATALOG_RPS || 25),
timeUnit: '1s',
duration: '5m',
preAllocatedVUs: 15,
maxVUs: 60,
tags: { flow: 'browse', source: 'desktop_export' },
exec: 'browseCatalog',
},
submit_cart: {
executor: 'constant-arrival-rate',
rate: Number(__ENV.CART_RPS || 8),
timeUnit: '1s',
duration: '5m',
preAllocatedVUs: 10,
maxVUs: 40,
tags: { flow: 'checkout', source: 'desktop_export' },
exec: 'submitCart',
},
},
thresholds: {
'http_req_duration{flow:browse}': ['p(95)<500'],
'http_req_duration{flow:checkout}': ['p(95)<900', 'p(99)<1400'],
http_req_failed: ['rate<0.01'],
},
};
export function browseCatalog() {
const res = http.get(`${BASE}/api/catalog?page=1`, {
headers,
tags: { flow: 'browse' },
});
check(res, { 'browse 2xx': (r) => r.status >= 200 && r.status < 300 });
sleep(0.3);
}
export function submitCart() {
const body = JSON.stringify({ items: [{ sku: 'A1', qty: 1 }] });
const res = http.post(`${BASE}/api/cart/submit`, body, {
headers,
tags: { flow: 'checkout' },
});
check(res, { 'cart 2xx': (r) => r.status >= 200 && r.status < 300 });
sleep(0.5);
}
Patrones que funcionan
- Importa una vez, escenarios muchos: Postman u OpenAPI → escenarios visuales → export k6 (plantilla k6 mínima).
- Tunea tasas en UI, gate en CI: desktop descubre SLOs; pipeline aplica umbrales smoke (pruebas en CI/CD).
- Reportes comparativos compartidos: filtra por tags
flow:*que stakeholders ya usan en roadmaps (leer reportes). - Versiona snapshots de escenario antes de releases mayores—repite pesos idénticos al depurar regresiones.
Antipatrones a evitar
- Tratar corridas desktop como «no oficiales» y nunca exportar—CI deriva en un sprint.
- Reconstruir escenarios desde cero en JS cuando la colección ya existe.
- Compartir solo PNG sin JSON de escenario o metadata de env.
- Omitir tags porque «el gráfico desktop se ve bien»—los exports pierden alineación con observabilidad.
Pro tip (comando de ejemplo): ejecuta el script exportado en local para verificar paridad con la corrida desktop.
CATALOG_RPS=25 CART_RPS=8 k6 run desktop-export-cart-flows.js --summary-export=parity-check.json
Qué demuestra este comando: los checks de paridad prueban que el script exportado coincide con el tuning desktop antes de commitearlo a CI.
Marco de decisión: solo CLI vs desktop-first vs híbrido
| Situación | Acción recomendada |
|---|---|
| Tuning horario de escenarios antes de un lanzamiento | Desktop-first; export k6 cuando la mezcla se estabiliza |
| Smoke nocturno en GitHub Actions | Solo CLI con script exportado; sin pasos manuales en UI |
| PM/QA necesita evidencia legible | Reportes integrados desktop + escenarios etiquetados |
| Change control regulado | Export + review en PR; desktop solo para autoría |
| Un ingeniero, un script, sin colección | CLI basta—desktop aporta poco hasta que crece la colaboración |
Quédate en solo CLI si un mantenedor único posee un script estable y nadie importa desde Postman.
Adopta desktop-first si las colecciones guían el trabajo API y varios roles revisan resultados cada semana.
Usa híbrido si desktop autoría escenarios, CI ejecuta exports y snapshots archivan pesos por release (tipos de escenario).
Checklist de equipo antes de estandarizar flujos desktop
- Elige un import (Postman u OpenAPI) como verdad—deja de bifurcar scripts en paralelo.
- Define nombres para escenarios, tags y env vars para que exports coincidan con convenciones CI.
- Documenta la ruta export → PR → pipeline para que experimentos desktop se conviertan en artefactos con gate.
- Forma a revisores en reportes comparativos etiquetados, no solo en
p95destacado. - Archiva snapshots de escenario + exports de resumen por release para replay de regresiones.
Cómo Performate implementa flujos k6 desktop-first
Performate se apoya en k6 como capa desktop para equipos ahogados en glue. Abajo, un ejemplo de flujo concreto para la misma API catálogo + carrito de este artículo.
Ejemplo: de import Postman a export listo para CI en un workspace
- Importa la colección Postman de commerce con browse de catálogo y submit de carrito. Problema resuelto: peticiones alineadas con lo que ya mantienen los devs de API.
- Crea escenarios
browse_catalogysubmit_carten el editor visual a 25 y 8 req/s. Problema resuelto: tunear mezcla en minutos sin editar executors a mano. - Aplica tags
flow:browseyflow:checkouten el panel de escenario. Problema resuelto: reportes hablan lenguaje de producto y coinciden con tags k6 exportados. - Ejecuta ambos escenarios y revisa el informe integrado—filtra colas antes de compartir con QA. Problema resuelto: evidencia lista para stakeholders sin deck aparte.
- Ajusta tasas tras revisión de analytics, vuelve a ejecutar y compara informes lado a lado. Problema resuelto: bucles de hipótesis dentro de una sola herramienta.
- Exporta k6 para smoke gates en CI cuando pasen umbrales (pruebas en CI/CD) para que pipelines ejecuten el mismo script que tunearon visualmente.
Ese flujo encaja con el cta de esta entrada: k6 desktop-first con escenarios visuales, reportes y exports en un solo lugar.
Conclusión
Los flujos de prueba de carga en escritorio ganan cuando colecciones, escenarios e informes comparten un workspace y los exports k6 mantienen honesto a CI. Itera visualmente, exporta de forma determinista y archiva snapshots para que la mezcla de la semana pasada sea reproducible—no un misterio de Slack.
Importa tu colección commerce, ajusta tasas browse vs checkout en el editor, exporta una vez y condiciona el próximo release a ese artefacto—no a una corrida ad hoc en un laptop.
¿Listo para optimizar el rendimiento de tu API?
Corre flujos k6 desktop-first en Performate con escenarios visuales, reportes y exports en un solo lugar.