[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"pack-detail-api-testing-stack-es":3,"seo:pack:api-testing-stack:es":65},{"code":4,"message":5,"data":6},200,"操作成功",{"pack":7},{"slug":8,"icon":9,"tone":10,"status":11,"status_label":12,"title":13,"description":14,"items":15,"install_cmd":64},"api-testing-stack","🧪","#A16207","stable","Estable","Stack de Pruebas API","Bruno, Hoppscotch, Hurl, k6, Artillery, Locust — reemplazos open-source de Postman + JMeter, sin atadura SaaS.",[16,28,36,43,50,57],{"id":17,"uuid":18,"slug":19,"title":20,"description":21,"author_name":22,"view_count":23,"vote_count":24,"lang_type":25,"type":26,"type_label":27},996,"89ca3775-356f-11f1-9bc6-00163e2b0d79","bruno-open-source-ide-api-exploration-testing-89ca3775","Bruno — Open-Source IDE for API Exploration & Testing","Bruno is an open-source IDE for exploring and testing APIs — a lightweight, offline-first alternative to Postman and Insomnia. Stores collections as plain text files in your filesystem so they version-control naturally with Git.","Script Depot",324,0,"en","skill","Skill",{"id":29,"uuid":30,"slug":31,"title":32,"description":33,"author_name":34,"view_count":35,"vote_count":24,"lang_type":25,"type":26,"type_label":27},467,"1a83c479-0009-482b-9b11-bb41fb93d5be","hoppscotch-open-source-api-development-platform-1a83c479","Hoppscotch — Open-Source API Development Platform","Test APIs with a beautiful UI. REST, GraphQL, WebSocket, SSE, and gRPC. Self-hostable Postman alternative. 78K+ GitHub stars.","AI Open Source",307,{"id":37,"uuid":38,"slug":39,"title":40,"description":41,"author_name":22,"view_count":42,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1118,"42405722-364b-11f1-9bc6-00163e2b0d79","hurl-run-test-http-requests-plain-text-42405722","Hurl — Run and Test HTTP Requests with Plain Text","Hurl is a command-line tool that runs HTTP requests defined in a simple plain text format. Chain requests, capture values, assert responses, and use it for API testing in CI\u002FCD. Written in Rust on top of libcurl for maximum compatibility.",266,{"id":44,"uuid":45,"slug":46,"title":47,"description":48,"author_name":22,"view_count":49,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1116,"4240522f-364b-11f1-9bc6-00163e2b0d79","k6-modern-load-testing-tool-using-go-javascript-4240522f","k6 — Modern Load Testing Tool Using Go and JavaScript","k6 is a modern load testing tool built by Grafana Labs. Write test scripts in JavaScript, run them in a high-performance Go runtime. Developer-centric with CLI-first workflow, CI\u002FCD integration, and Grafana Cloud for result analysis.",279,{"id":51,"uuid":52,"slug":53,"title":54,"description":55,"author_name":34,"view_count":56,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1396,"729c7c2c-38d7-11f1-9bc6-00163e2b0d79","artillery-modern-load-testing-http-websocket-more-729c7c2c","Artillery — Modern Load Testing for HTTP, WebSocket & More","Node.js load testing toolkit with YAML scenarios covering HTTP, WebSocket, gRPC and Playwright, plus distributed runs on AWS Fargate.",262,{"id":58,"uuid":59,"slug":60,"title":61,"description":62,"author_name":34,"view_count":63,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1117,"42405496-364b-11f1-9bc6-00163e2b0d79","locust-scalable-load-testing-pure-python-42405496","Locust — Scalable Load Testing in Pure Python","Locust is an open-source load testing tool where you define user behavior in plain Python code. Distributed, scalable, and with a real-time web UI for monitoring. No DSL to learn — just write Python.",271,"tokrepo install pack\u002Fapi-testing-stack",{"pageType":66,"pageKey":8,"locale":67,"title":68,"metaDescription":69,"h1":13,"tldr":70,"bodyMarkdown":71,"faq":72,"schema":88,"internalLinks":98,"citations":111,"wordCount":124,"generatedAt":125},"pack","es","Stack Pruebas API: Bruno, Hoppscotch, Hurl, k6, Artillery","Pack open-source de pruebas API: clientes Bruno + Hoppscotch, Hurl en CI, k6 + Artillery + Locust de carga. Reemplaza Postman y JMeter, sin SaaS lock-in.","Seis herramientas open-source que reemplazan Postman + JMeter completamente: dos clientes interactivos, un runner CI, tres generadores de carga. Instalación TokRepo.","## Qué incluye este pack\n\nEste pack reúne las **seis herramientas open-source** que han reemplazado Postman y JMeter en equipos de ingeniería modernos. Los cambios de precios de Postman y la sincronización forzada en la nube desde 2023 empujaron a muchos equipos fuera; JMeter sigue funcionando pero sus scripts XML y ecosistema solo-Java son dolorosos al lado de alternativas JavaScript-nativas. El pack divide la superficie en tres problemas: exploración interactiva, aserciones CI y generación de carga.\n\n| # | Recurso | Rol | Característica notable |\n|---|---|---|---|\n| 1 | Bruno | Cliente interactivo | Archivos `.bru` texto plano, colecciones versionables en git |\n| 2 | Hoppscotch | Cliente interactivo | Browser-first, auto-alojable, colaboración en tiempo real |\n| 3 | Hurl | Runner CI | DSL texto plano, binario único, perfecto para Makefiles |\n| 4 | k6 | Pruebas de carga | Scripting JavaScript, dashboards Grafana-nativos |\n| 5 | Artillery | Pruebas de carga | Escenarios YAML, carga browser via Playwright |\n| 6 | Locust | Pruebas de carga | Tests Python puros, modelo distribuido master-worker |\n\nLa triada cliente interactivo + runner CI + generador de carga cubre el ciclo completo. Bruno o Hoppscotch es donde clicas mientras escribes endpoints. Hurl es lo que corre en CI para confirmar que el contrato no derivó. k6 \u002F Artillery \u002F Locust es lo que corre contra staging antes de cada release.\n\n## Por qué dejar Postman y JMeter\n\nTres fuerzas convergieron. **Postman fue cloud-only por defecto** en 2023 — colecciones sincronizan a sus servidores, compartir requiere cuentas, el tier gratis se redujo. **La UX de JMeter es de 2005** — configs XML, GUI-first, sin historia de scripting agradable. **CI demanda diffabilidad** — Postman exporta blobs JSON que producen diffs PR ilegibles; el `.bru` de Bruno y el texto plano de Hurl producen diffs legibles que los reviewers pueden auditar.\n\nMás allá de la migración, el pack open-source añade capacidades que Postman nunca tuvo:\n\n- Correr **la misma prueba de carga en tres motores** para triangular (k6 para HTTP-heavy, Artillery para flujos browser, Locust cuando tu equipo Python quiere quedarse en Python).\n- **Los archivos Hurl son documentación** — pega un `.hurl` en un runbook y cualquier ingeniero con curl puede leerlo.\n- **Auto-aloja Hoppscotch** para mantener datos enterprise en tu red — el tier enterprise de Postman cobra por asiento.\n\n## Instala en un comando\n\n```bash\n# Instala el pack completo en el proyecto actual\ntokrepo install pack\u002Fapi-testing-stack\n\n# O elige recursos individuales\ntokrepo install hurl\ntokrepo install k6\n```\n\nEl TokRepo CLI escribe esqueletos de colección Bruno, un directorio `tests\u002Fapi\u002F*.hurl`, y una carpeta `loadtest\u002F` con plantillas para k6, Artillery y Locust. Snippets CI para GitHub Actions y GitLab CI incluidos por recurso.\n\n## Errores comunes\n\n- **Tratar resultados k6 como realistas sin warm-up.** k6 escala rápido por defecto; si arrancas en 1000 VUs, tu servicio pasa los primeros 30 segundos llenando cachés y tu p99 se ve peor de lo que es. Usa `stages` con rampa de 30-60s.\n- **Aserciones Hurl sobre texto del body.** Aserta sobre paths JSON (`jsonpath \"$.user.id\"`), no substrings. Comparaciones de texto fallan espuriamente cuando tu serializador cambia espacios u orden de keys.\n- **Compartir colecciones Bruno sin estrategia de `environments\u002F`.** Bruno soporta variables por entorno; si commiteas credenciales directo en archivos `.bru`, filtraste secretos a git. Usa patrones `bru env` y `.env.local`.\n- **Locust en RPS muy alto en una máquina.** El GIL de Locust significa que un proceso Python topa cerca de 1k-2k RPS; usa `--master` + múltiples `--worker`, o cambia a k6 para escenarios >5k RPS.\n- **Olvidar registrar p99 junto con throughput.** Un test que pega 10k RPS con p50=20ms es nada si p99=8s. Exporta siempre el histograma de latencia, no solo la media.\n\n## Flujo de trabajo recomendado\n\nUna vez instalado, el día a día se ve así. El ingeniero draftea un endpoint y lo explora en Bruno contra un server local, commiteando los archivos `.bru` resultantes. Traduce el happy path y dos casos de fallo a `tests\u002Fapi\u002Fusers.hurl` — los tests Hurl son ahora el contrato. CI corre la suite Hurl en cada PR; fallos bloquean el merge. Una vez el endpoint llega a staging, un job programado de Prefect corre el baseline k6 (200 VUs por 5 minutos) y compara p95\u002Fp99 contra el checkpoint del deploy previo. Regresiones disparan alerta Slack con link al dashboard Grafana.\n\nAntes de cada release mayor, el equipo corre Artillery contra staging con un escenario Playwright que imita navegación real, luego Locust con un escenario 10x para encontrar el cliff. Los tres motores discrepan 10-20% en RPS crudo pero siempre concuerdan en la *forma* de la curva — confías en el punto de inflexión aunque los números individuales diverjan.\n\n## Relación con otros packs\n\nEste pack se empareja con **Orquestación de Flujos** (corre pruebas de carga nocturnas via cron Inngest o Prefect) y **Generadores de Sitios Estáticos & Docs** (publica docs OpenAPI que coincidan con lo que tus tests Hurl asertan — fuente única de verdad entre docs y tests). Para observabilidad completa, añade **Charts & Visualización** para renderizar el output CSV de k6 vía Apache ECharts o Grafana.",[73,76,79,82,85],{"q":74,"a":75},"¿Es gratis correr todo el pack?","Sí. Cada herramienta es open source bajo licencias permisivas (MIT, Apache 2.0, AGPL para auto-host de Hoppscotch). k6 tiene un servicio Grafana Cloud k6 pago para almacén gestionado de resultados, pero el binario OSS corre tests ilimitados local o en tu CI. Artillery tiene tier pro pago con reporte gestionado; el CLI core es gratis. Locust y Hurl son incondicionalmente gratis.",{"q":77,"a":78},"¿Cómo se compara con Postman?","Postman sigue siendo la experiencia más fluida para exploración API por primera vez gracias a su UX madura. El pack open-source iguala paridad de features para colecciones, entornos y scripts de test, con dos grandes ventajas: archivos texto que difen limpio en code review, y auto-host para que los secretos no salgan de tu red. Trade-off: UX de colaboración menos madura, sin monitoreo API integrado (usa Workflow Orchestration en su lugar).",{"q":80,"a":81},"¿Funcionará con Claude Code o Cursor?","Sí. Claude Code puede crear colecciones Bruno, tests Hurl y scripts k6 desde una spec OpenAPI — las páginas de recurso TokRepo incluyen prompts subagente. Flujo común: dale a Claude un `openapi.yaml`, pídele generar `tests\u002Fapi\u002F*.hurl` cubriendo cada endpoint, luego corre `hurl --test tests\u002Fapi\u002F*.hurl` en CI. Cursor obtiene reglas equivalentes en `.cursor\u002Frules\u002F`.",{"q":83,"a":84},"¿Qué diferencia a Bruno de Hoppscotch?","Bruno es desktop-first, basado en archivos — las colecciones viven en tu disco como `.bru` texto. Mejor para equipos pequeños que ya usan git como fuente de verdad. Hoppscotch es browser-first con auto-host opcional, con modelo de colaboración tiempo real más rico — mejor cuando product managers y QA también necesitan ver resultados de requests. La mayoría elige uno, pero coexisten bien si migras gradualmente.",{"q":86,"a":87},"¿Trampa operativa al correr k6 en CI?","k6 emite exit code 0 incluso cuando thresholds fallan a menos que pongas `--quiet=false` y mires stderr — o mejor, usa `thresholds` con `abortOnFail: true` por check. Muchos equipos envían CI verde que secretamente violó SLOs p99 porque confiaron en el exit code. También: canaliza el `--out` de k6 a JSON y archívalo como artefacto CI para comparar runs en el tiempo.",{"@context":89,"@type":90,"name":91,"description":92,"numberOfItems":93,"publisher":94},"https:\u002F\u002Fschema.org","CollectionPage","API Testing Stack","Open-source replacements for Postman and JMeter — Bruno, Hoppscotch, Hurl, k6, Artillery, Locust.",6,{"@type":95,"name":96,"url":97},"Organization","TokRepo","https:\u002F\u002Ftokrepo.com",[99,103,107],{"url":100,"anchor":101,"reason":102},"\u002Fes\u002Fpacks\u002Fworkflow-orchestration","Orquestación de Flujos","agenda pruebas de carga como jobs recurrentes",{"url":104,"anchor":105,"reason":106},"\u002Fes\u002Fpacks\u002Fstatic-site-docs","Generadores de Sitios Estáticos & Docs","publica docs API que coincidan con los contratos probados",{"url":108,"anchor":109,"reason":110},"\u002Fes\u002Ftools\u002Fclaude-code","Claude Code","agente que crea scripts Hurl + k6 desde OpenAPI",[112,116,120],{"claim":113,"source_name":114,"source_url":115},"Bruno is an open-source API client that stores collections as plain text files for git versioning","Bruno","https:\u002F\u002Fwww.usebruno.com",{"claim":117,"source_name":118,"source_url":119},"k6 is a developer-centric load testing tool from Grafana Labs, scripting in JavaScript","grafana\u002Fk6","https:\u002F\u002Fgithub.com\u002Fgrafana\u002Fk6",{"claim":121,"source_name":122,"source_url":123},"Hurl runs HTTP requests defined in plain text and asserts on responses for CI","hurl.dev","https:\u002F\u002Fhurl.dev",859,"2026-05-02T15:00:00Z"]