Por Performate
Generación de scripts k6 asistida por IA: velocidad, revisiones y seguridad en producción
Genera k6 más rápido con IA: límites en prompts, higiene de secretos, revisión de diffs y hábito smoke-first antes de escalar cualquier corrida.
Tu equipo pidió a una IA un script k6 el lunes y lo corrió contra staging con 500 VUs el martes—sin que nadie leyera el diff. Funcionó hasta que no: una URL de producción hardcodeada, un refresh de auth faltante y un while(true) que el modelo añadió para «asegurar cobertura». La generación asistida por IA ahorra tecleo; no reemplaza las mismas puertas que aplicas al código escrito por humanos.
Trata cada script generado como el primer PR de un junior: rápido, plausible y peligroso si se mergea sin revisar. En esta guía verás por qué importan los límites del prompt, cómo revisar salida de IA antes de escalar y qué patrones k6 mantienen scripts generados lo bastante seguros para staging—y luego CI.
Por qué los scripts de IA necesitan otra barra de revisión—no más baja
Los modelos optimizan JavaScript plausible, no el radio de blast de tu org. Modos de fallo frecuentes bajo carga:
- Paths alucinados que devuelven 404 en staging pero pasan checks escritos contra el status equivocado.
- Secretos en texto plano porque el prompt incluyó un Bearer token real «para contexto».
- Concurrencia sin límite—
vus: 1000copiado de un blog, no de matemática de capacidad. - Sin think time y el script martilla endpoints más rápido que cualquier cliente real.
- Executor incorrecto—
shared-iterationsabierto cuando necesitas control por tasa de llegada para validar SLO.
La solución no es «nunca usar IA». Es un contrato de revisión: prompts estructurados, diff obligatorio, corrida smoke-first y patrones prohibidos explícitos antes de tocar entornos cercanos a producción.
Las tres puertas antes de escalar
- Revisión estática: paths, env vars, sin secretos, techos realistas de VU/tasa.
- Smoke run: 1–5 VUs o tasa baja 60–120 s; verifica que los checks reaccionen a respuestas reales.
- Aprobación de escala: sign-off humano con entorno objetivo y criterios de aborto documentados.
Combina esto con riesgos de validación en scripts redactados por IA para que el checklist sea consistente en el equipo.
Implementación práctica con k6: defaults seguros para scripts generados por IA
Al aceptar salida de IA, envuélvela en guardrails antes de la primera corrida. Limita concurrencia vía env, etiqueta cada request para trazabilidad y añade umbrales de aborto si la tasa de error se dispara.
Script de ejemplo (ilustrativo—no listo para producción). URLs, tokens y límites ficticios. Adapta a tu entorno.
Qué demuestra este ejemplo:
- Techos vía entorno:
MAX_VUSySMOKE_MODEevitan corridas a escala completa desde borradores no revisados. - Tags obligatorios:
source:ai_draftyreview_status:pendingpara ver en reportes qué corridas faltan por aprobar. - Checks estrictos en smoke: valida status, content-type y tiempo de respuesta—no solo «request completado».
- Umbrales fail-fast: alta tasa de error aborta la prueba antes de convertirse en incidente.
import http from 'k6/http';
import { check, sleep } from 'k6';
const BASE = __ENV.API_BASE || 'https://staging.example.com';
const MAX_VUS = Number(__ENV.MAX_VUS || 5);
const SMOKE = __ENV.SMOKE_MODE === 'true';
export const options = {
vus: SMOKE ? Math.min(MAX_VUS, 5) : MAX_VUS,
duration: SMOKE ? '90s' : '5m',
thresholds: {
http_req_failed: ['rate<0.05'],
http_req_duration: ['p(95)<800'],
checks: ['rate>0.95'],
},
tags: { source: 'ai_draft', review_status: 'pending' },
};
export default function () {
const res = http.get(`${BASE}/api/health`, {
headers: { Authorization: `Bearer ${__ENV.TOKEN}` },
tags: { endpoint: 'health', source: 'ai_draft' },
});
check(res, {
'status is 200': (r) => r.status === 200,
'content-type json': (r) => (r.headers['Content-Type'] || '').includes('json'),
'body has status field': (r) => {
try { return JSON.parse(r.body).status !== undefined; } catch { return false; }
},
});
sleep(SMOKE ? 1 : 0.3);
}
Patrones que funcionan
- Contratos de prompt con salidas prohibidas: sin URLs de prod, sin secretos embebidos, techo de VU (secretos k6).
- Flag smoke-first para que el mismo script sirva en revisión y en escala.
- Diff en PR con checklist de seguridad adjunto.
Anti-patrones a evitar
- Pegar tokens vivos en chats para «ayudar al modelo».
- Correr salida de IA con la concurrencia por defecto del equipo sin leer
options. - Omitir checks porque «la IA probablemente acertó el path».
Tip pro (comando de ejemplo):
SMOKE_MODE=true MAX_VUS=3 k6 run ai-draft-health.js
Qué demuestra este comando: el mismo archivo corre en modo seguro de revisión—pocos VUs, duración corta—antes de quitar el guard smoke para un escenario completo.
Marco de decisión: cuándo confiar en borradores de IA vs reescribir
| Situación | Acción recomendada |
|---|---|
| Script smoke greenfield desde OpenAPI | Borrador IA + revisión estática + smoke |
| Cadenas de auth con refresh de token | Reescritura humana o edición profunda |
| Flujos de pago o PII | Fixtures sintéticos; revisión legal antes de contexto en IA |
| Smoke gate en CI | Export tras aprobación humana; umbrales fijados desde baselines |
| Modelo multi-escenario | IA para boilerplate; el ingeniero posee la matemática de executors |
Usa borrador IA-first si el escenario es read-heavy, los paths son estables y hay revisor que entienda executors k6.
Usa scripting human-first si el flujo tiene rotación OAuth, claves de idempotencia o reglas estrictas de residencia de datos (privacidad IA en herramientas de escritorio).
Usa revisión híbrida si la IA genera estructura y tú reemplazas bloques de auth, datos y umbrales desde baselines medidos (regresión de baseline).
Observabilidad, documentación y siguientes pasos
Antes de promover un borrador de IA de smoke a escala:
- Registra versión de prompt, modelo y revisor en el PR o metadata de corrida.
- Etiqueta corridas k6 con
source:ai_drafthasta que un humano pongareview_status:approved. - Archiva el hash exacto del script corrido en staging junto al export aprobado para CI.
- Verifica que no aparezcan secretos en consola k6 ni en reportes HTML exportados.
- Documenta criterios de aborto (tasa máxima de error, quién autoriza escalar).
Cómo Performate mantiene segura la generación k6 asistida por IA
Ejemplo: de borrador IA a smoke aprobado en un workspace de escritorio
- Importa tu colección Postman u OpenAPI como input estructurado—evita pegar payloads de prod en chats externos. Problema resuelto: el modelo trabaja desde la misma fuente de verdad que ya mantiene el equipo.
- Genera o pega un script borrador de IA, luego corre de inmediato a concurrencia smoke en el runner de escritorio. Problema resuelto: la revisión ocurre junto a respuestas reales, no contra JSON imaginado.
- Aplica tags de escenario (
source:ai_draft,endpoint:health) en el editor visual antes de escalar. Problema resuelto: los reportes muestran qué endpoints vienen de borradores no aprobados. - Compara la corrida smoke con tu último baseline en el reporte integrado—revisa p95 y tasa de error antes de editar VUs. Problema resuelto: detectas paths alucinados cuando fallan latencia o checks, no tras un incidente de 500 VUs.
- Edita auth y env vars en el panel de entorno—nunca commitees tokens; usa secretos locales. Problema resuelto: los scripts generados heredan patrones seguros de variables del workspace.
- Exporta el script k6 aprobado para CI solo tras sign-off del checklist (regresión smoke CI). Problema resuelto: el pipeline corre el script que un humano revisó de verdad.
Cierre
La IA acelera primeros borradores k6, no primeras corridas sin revisión. Limita concurrencia, etiqueta borradores, haz smoke antes de escalar y trata cada script generado como código que puede tumbar staging.
Corre tu próximo borrador de IA en modo smoke, lee el diff como un PR y solo entonces hablemos de VUs.
¿Listo para optimizar el rendimiento de tu API?
Usa el flujo de escritorio de Performate—importaciones, corridas k6 y análisis asistido por IA según tu plan—para entregar más rápido sin saltarte la validación.