{"componentChunkName":"component---src-templates-docs-js","path":"/es-es/guides/setup-teardown-scripts","result":{"data":{"site":{"siteMetadata":{"title":"Documentation | LoadFocus","docsLocation":""}},"mdx":{"fields":{"id":"c686f7e4-29cf-5d79-9381-1c89edecb95b","title":"Scripts de configuración y limpieza","slug":"/es-es/guides/setup-teardown-scripts","locale":"es-ES"},"body":"var _excluded = [\"components\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Scripts de configuración y limpieza\",\n  \"metaTitle\": \"Scripts de setup y teardown en monitorización de API: OAuth, firma, limpieza | Guías | LoadFocus\",\n  \"metaDescription\": \"Ejecuta un script antes y después de un check de API en LoadFocus: obtén un token OAuth, firma una petición, genera datos de prueba y limpia después. Scripts de setup y teardown para monitores de API.\",\n  \"order\": 11\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Scripts de configuraci\\xF3n y limpieza\"), mdx(\"p\", null, \"Algunos endpoints de API no se pueden monitorizar con una petici\\xF3n est\\xE1tica. Necesitan un token nuevo en cada llamada, una cabecera firmada o una carga \\xFAnica, y pueden dejar datos que conviene limpiar. Los \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://loadfocus.com/api-monitoring\"\n  }, \"monitores de API\"), \" de LoadFocus te permiten ejecutar un \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"script de configuraci\\xF3n (setup)\"), \" justo antes de la petici\\xF3n y un \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"script de limpieza (teardown)\"), \" justo despu\\xE9s de la respuesta, de modo que el check se prepara y se ordena solo en cada ejecuci\\xF3n.\"), mdx(\"p\", null, \"Los scripts de setup y teardown se aplican a los \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"checks de API\"), \". Los checks de navegador ya son un script completo (el propio flujo de usuario), y los checks multistep pasan datos entre pasos con variables, as\\xED que cubren las mismas necesidades de otra forma.\"), mdx(\"h2\", null, \"C\\xF3mo funciona\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"script de setup\"), \" se ejecuta primero y recibe el objeto \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"request\"), \". Todo lo que cambies en \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"request\"), \" (cabeceras, URL, cuerpo) se usa para la llamada real. Aqu\\xED es donde obtienes un token, firmas la petici\\xF3n o construyes una carga \\xFAnica.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"LoadFocus env\\xEDa entonces la petici\\xF3n.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"script de teardown\"), \" se ejecuta al final y recibe tanto \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"request\"), \" como \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"response\"), \". Aqu\\xED es donde eliminas un recurso que el check haya creado, o depuras datos sensibles de los logs.\")), mdx(\"p\", null, \"Ambos scripts se ejecutan en un entorno aislado en cada ejecuci\\xF3n del check, en cada regi\\xF3n, con su salida de consola capturada para que veas qu\\xE9 ha ocurrido.\"), mdx(\"h2\", null, \"Qu\\xE9 puedes usar\"), mdx(\"p\", null, \"Dentro de un script de setup o teardown puedes hacer \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"require\"), \" de:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"got\")), \" y \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"axios\")), \" \\u2014 hacer llamadas HTTP (por ejemplo, intercambiar credenciales por un token OAuth).\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"crypto\")), \" \\u2014 firmar peticiones (HMAC, hashes) para APIs que requieren una firma.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"@faker-js/faker\")), \" \\u2014 generar datos de prueba \\xFAnicos y realistas.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"url\")), \" y \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, mdx(\"inlineCode\", {\n    parentName: \"strong\"\n  }, \"path\")), \" \\u2014 utilidades para construir URLs y rutas.\")), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"console.log\"), \" est\\xE1 disponible y su salida se muestra bajo los logs del script.\"), mdx(\"h2\", null, \"Ejemplo: obtener un token OAuth en el setup\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const got = require('got');\\n\\nconst tokenResponse = await got.post('https://auth.example.com/oauth/token', {\\n  json: {\\n    grant_type: 'client_credentials',\\n    client_id: '{{secrets.CLIENT_ID}}',\\n    client_secret: '{{secrets.CLIENT_SECRET}}',\\n  },\\n}).json();\\n\\n// Aplica el token a la petici\\xF3n que LoadFocus est\\xE1 a punto de enviar\\nrequest.headers = request.headers || [];\\nrequest.headers.push({ name: 'Authorization', value: 'Bearer ' + tokenResponse.access_token });\\n\")), mdx(\"h2\", null, \"Ejemplo: firmar una petici\\xF3n\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const crypto = require('crypto');\\n\\nconst timestamp = Date.now().toString();\\nconst signature = crypto\\n  .createHmac('sha256', '{{secrets.SIGNING_KEY}}')\\n  .update(timestamp + request.url)\\n  .digest('hex');\\n\\nrequest.headers = request.headers || [];\\nrequest.headers.push({ name: 'X-Timestamp', value: timestamp });\\nrequest.headers.push({ name: 'X-Signature', value: signature });\\n\")), mdx(\"h2\", null, \"Ejemplo: limpiar en el teardown\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-js\"\n  }, \"const got = require('got');\\n\\n// Si la petici\\xF3n cre\\xF3 un recurso, elim\\xEDnalo para que el monitor no deje rastro\\nif (response.statusCode === 201 && response.body) {\\n  const created = JSON.parse(response.body);\\n  await got.delete('https://api.example.com/items/' + created.id, {\\n    headers: { Authorization: request.headers.find(h => h.name === 'Authorization').value },\\n  });\\n}\\n\")), mdx(\"h2\", null, \"Secretos y variables\"), mdx(\"p\", null, \"Referencia tus \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://loadfocus.com/api-monitoring\"\n  }, \"secretos y variables\"), \" guardados con \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"{{secrets.NOMBRE}}\"), \" y \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"{{variables.NOMBRE}}\"), \" dentro de un script. LoadFocus los sustituye en tiempo de ejecuci\\xF3n, de modo que las credenciales y las claves de firma nunca quedan en texto plano en el cuerpo del script.\"), mdx(\"h2\", null, \"Probar tus scripts\"), mdx(\"p\", null, \"En el editor del check, el bot\\xF3n \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Ejecutar\"), \" junto a cada script lo ejecuta en vivo contra el endpoint real y muestra los logs capturados y el resultado (\\xE9xito o el mensaje de error). \\xDAsalo para confirmar que tu intercambio de token o tu firma funcionan antes de guardar el monitor.\"), mdx(\"h2\", null, \"L\\xEDmites\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El cuerpo de cada script est\\xE1 limitado a 100 KB.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"El script de setup se ejecuta en cada ejecuci\\xF3n del check, as\\xED que mant\\xE9n los intercambios de token eficientes: un setup lento se suma al tiempo medido del check.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Si el script de setup falla, la petici\\xF3n no se env\\xEDa y el check se marca como fallido, que suele ser lo deseable (sin auth v\\xE1lida no hay check v\\xE1lido).\")));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#scripts-de-configuración-y-limpieza","title":"Scripts de configuración y limpieza","items":[{"url":"#cómo-funciona","title":"Cómo funciona"},{"url":"#qué-puedes-usar","title":"Qué puedes usar"},{"url":"#ejemplo-obtener-un-token-oauth-en-el-setup","title":"Ejemplo: obtener un token OAuth en el setup"},{"url":"#ejemplo-firmar-una-petición","title":"Ejemplo: firmar una petición"},{"url":"#ejemplo-limpiar-en-el-teardown","title":"Ejemplo: limpiar en el teardown"},{"url":"#secretos-y-variables","title":"Secretos y variables"},{"url":"#probar-tus-scripts","title":"Probar tus scripts"},{"url":"#límites","title":"Límites"}]}]},"parent":{"__typename":"File","relativePath":"es-es/guides/setup-teardown-scripts.md"},"frontmatter":{"metaTitle":"Scripts de setup y teardown en monitorización de API: OAuth, firma, limpieza | Guías | LoadFocus","metaDescription":"Ejecuta un script antes y después de un check de API en LoadFocus: obtén un token OAuth, firma una petición, genera datos de prueba y limpia después. Scripts de setup y teardown para monitores de API.","order":11}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/es-es","title":"Bienvenido a la Nueva Documentación de LoadFocus"}}},{"node":{"fields":{"slug":"/es-es/guides","title":"Guías Prácticas"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base","title":"Base de Conocimientos"}}},{"node":{"fields":{"slug":"/es-es/pricing","title":"Preguntas Frecuentes sobre Precios"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/understanding-declined-card-payments","title":"¿Por qué ha sido rechazado el pago con mi tarjeta?"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring","title":"Monitoreo de API"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/using-3rd-party-tools-to-load-test-website-locally","title":"Cómo hacer pruebas de carga de un sitio web o API alojado localmente"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/how-to-update-card-details","title":"Cómo Actualizar los Datos de la Tarjeta para Pagos Fallidos"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/understanding-differences-between-http-and-https","title":"Diferencias entre HTTP y HTTPS"}}},{"node":{"fields":{"slug":"/es-es/guides/external-reports","title":"Informes Externos"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/using-google-analytics-and-no-requests-while-load-testing","title":"Sin tráfico en Google Analytics durante las pruebas de carga"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/using-query-parameters","title":"Cómo Usar Parámetros de Consulta URL"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing","title":"Pruebas de Carga con Apache JMeter"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/using-valid-url-endpoints","title":"Qué es una URL Válida para una Prueba de Carga"}}},{"node":{"fields":{"slug":"/es-es/knowledge-base/what-is-an-http-method","title":"Qué es un método de solicitud HTTP"}}},{"node":{"fields":{"slug":"/es-es/guides/k6-load-testing","title":"k6 pruebas de carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing","title":"Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance","title":"Monitorear el Rendimiento del Sitio Web"}}},{"node":{"fields":{"slug":"/es-es/guides/mcp","title":"Asistentes de IA (MCP)"}}},{"node":{"fields":{"slug":"/es-es/guides/monitoring-as-code","title":"Monitoring as Code"}}},{"node":{"fields":{"slug":"/es-es/guides/onboarding","title":"Onboarding de LoadFocus"}}},{"node":{"fields":{"slug":"/es-es/guides/openapi-import","title":"Importar desde OpenAPI / Swagger"}}},{"node":{"fields":{"slug":"/es-es/guides/reusable-snippets","title":"Snippets reutilizables"}}},{"node":{"fields":{"slug":"/es-es/guides/teams","title":"Gestión de Equipos"}}},{"node":{"fields":{"slug":"/es-es/guides/setup-teardown-scripts","title":"Scripts de configuración y limpieza"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/alert-channels","title":"Canales de alerta: Discord, PagerDuty y Opsgenie"}}},{"node":{"fields":{"slug":"/es-es/guides/external-reports/azure-app-insights-integration","title":"Integración con Azure App Insights"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/downloading-jmx-csv-files","title":"Descargar Archivos .JMX y .CSV en LoadFocus"}}},{"node":{"fields":{"slug":"/es-es/guides/k6-load-testing/analyzing-k6-test-results","title":"Análisis de resultados de tests de carga k6"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/ai-credits","title":"AI Credits"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/how-to-run-new-apache-jmeter-load-test","title":"Cómo Ejecutar una Nueva Prueba de Carga con Apache JMeter"}}},{"node":{"fields":{"slug":"/es-es/guides/k6-load-testing/how-to-run-k6-load-test","title":"Cómo ejecutar un nuevo test de carga k6"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/alert-configuration","title":"Configuración de Alertas"}}},{"node":{"fields":{"slug":"/es-es/guides/external-reports/datadog-integration","title":"Integración con Datadog"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/analyzing-load-test-results","title":"Cómo Verificar los Resultados de Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/alert-metrics","title":"Métricas de Alerta"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/api-check-results","title":"Comprender los Resultados de Verificación de API"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/check-groups","title":"Grupos de verificaciones"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/authorization-code-grant-type-oauth-2-0","title":"Tipo de Concesión Authorization Code en OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/core-web-vitals-metrics","title":"¿Qué son los Core Web Vitals?"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/core-web-vitals-competitor-comparison","title":"Comparación de Core Web Vitals con la Competencia"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/baseline-comparison-between-load-tests","title":"Comparación de Línea Base entre Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd","title":"Integración de API de Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-generators-hardware-infrastructure-jmeter","title":"¿Cuáles son los recursos de hardware asignados a mi cuenta para generadores de carga?"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/custom-domain-status-page","title":"Cómo añadir un dominio propio a tu página de estado"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/client-credentials-grant-type-oauth-2-0","title":"Tipo de Concesión Client Credentials en OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/getting-started","title":"Primeros Pasos"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/dashboards","title":"Paneles"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/common-http-error-codes","title":"Códigos de Estado de Error HTTP Comunes"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-anomalies","title":"Anomalías en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/how-to-create-new-alert","title":"Crear una Nueva Alerta"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/heartbeat-monitors","title":"Monitores Heartbeat (tareas cron)"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-engine-health-monitoring","title":"Monitoreo de Salud del Motor"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/crafting-perfect-test-names","title":"Crear Nombres de Prueba Perfectos"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/how-to-run-new-website-performance-test","title":"Crear Nueva Prueba de Rendimiento Web"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/maintenance-windows","title":"Ventanas de mantenimiento"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-error-analysis","title":"Análisis de Errores"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/decoding-average-response-times","title":"Decodificar el Tiempo Promedio de Respuesta"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/http-authentication","title":"Autenticación HTTP"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-insights","title":"Perspectivas de Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/multistep-api-checks","title":"Verificaciones de API multipaso"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/largest-contentful-paint","title":"Largest Contentful Paint (LCP)"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-jtl-file-analysis","title":"Análisis de Logs y Archivos JTL"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/demo","title":"Demostración"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/lighthouse-opportunities","title":"Oportunidades de Lighthouse"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-jtl-jmeter-log-file-analysis","title":"Análisis de Archivo de Log de JMeter"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/deep-dive-samples-in-load-testing","title":"¿Qué son las Muestras en Pruebas de Carga?"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/end-time-in-load-testing","title":"Comprender la Importancia del 'Tiempo de Finalización' en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check","title":"Cómo Crear una Nueva Verificación de API"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/pdf-report-branding","title":"Informes PDF con tu marca"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/load-testing-timeline-analysis","title":"Vista de Línea de Tiempo"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/status-pages","title":"Crea una página de estado pública para tus monitores"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/erros-and-reponse-codes","title":"Errores y Códigos de Respuesta"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/performance-budgets","title":"Presupuestos de Rendimiento y Alertas"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/uploading-jmeter-files-step-by-step-guide","title":"Subir Archivos JMeter a LoadFocus: Guía Paso a Paso"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/tcp-monitors","title":"Monitores de puerto TCP"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/geographical-test-location-in-load-testing","title":"Ubicación Geográfica de Prueba en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/variables","title":"Variables"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/real-user-field-data","title":"Datos de Campo de Usuarios Reales (CrUX)"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/getting-started","title":"Primeros Pasos"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/using-multiple-csv-files-with-jmeter-engines","title":"Usar Múltiples Archivos CSV con Motores JMeter en LoadFocus"}}},{"node":{"fields":{"slug":"/es-es/guides/monitor-website-performance/sitemap-import","title":"Importar desde Sitemap"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/granularity-in-load-test-results-and-charts","title":"Granularidad en Resultados y Gráficos de Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/how-to-run-new-load-test","title":"Cómo Ejecutar una Nueva Prueba de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/headers-and-manage-presets","title":"Encabezados y Presets de Encabezados"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/implicit-grant-type-oauth-2-0","title":"Tipo de Concesión Implicit en OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/how-to-url-query-parameters","title":"Parámetros de Consulta"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/load-generators-hardware-infrastructure","title":"¿Cuáles son los recursos de hardware asignados a mi cuenta para generadores de carga?"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/password-credentials-grant-type-oauth-2-0","title":"Tipo de Concesión Password Credentials en OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/refresh-token-grant-type-oauth-2-0","title":"Tipo de Concesión Refresh Token en OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/http-methods-overview-load-testing","title":"Métodos HTTP: Una Visión General"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/load-test-result-ai-analysis","title":"Análisis de IA de Resultados de Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/start-time-in-load-testing","title":"Comprender la Importancia del Tiempo de Inicio en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/use-cases","title":"Casos de Uso"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/using-cookies","title":"Usar Cookies"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-are-virtual-users-load-testing","title":"Qué son los Usuarios Virtuales en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-are-iterations-load-testing","title":"Dominar las Iteraciones en Pruebas de Carga: Una Inmersión Profunda"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-duration-in-load-testing","title":"Qué es la Duración en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-delay-when-running-a-load-test","title":"¿Qué es el Retraso al ejecutar una Prueba de Carga?"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-oauth-2-0-authorization","title":"Autorización OAuth 2.0"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-grant-type","title":"¿Qué es un Tipo de Concesión?"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-ramp-up-steps-in-load-testing","title":"Qué son los Pasos de Rampa en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-test-run-id","title":"¿Qué es un ID de Ejecución de Prueba?"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/what-is-ramp-up-time-in-load-testing","title":"Qué es el Tiempo de Rampa en Pruebas de Carga"}}},{"node":{"fields":{"slug":"/es-es/guides/load-testing/white-label-report-branding","title":"Informes PDF con tu marca"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/circleci","title":"CircleCI"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/azure-devops","title":"Azure DevOps"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/github-actions","title":"GitHub Actions"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/jenkins","title":"Jenkins"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/gitlab-ci-cd","title":"GitLab CI/CD"}}},{"node":{"fields":{"slug":"/es-es/guides/jmeter-load-testing/jmeter-integration-ci-cd/overview","title":"Integrar el Cliente API de JMeter con Pipelines de CI/CD"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/activate-deactivate","title":"Activar/Desactivar"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/alert-channels","title":"Canales de Alerta"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/assertions","title":"Aserciones"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/frequency","title":"Frecuencia"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/friendly-check-name","title":"Nombre Amigable de Verificación"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/locations","title":"Ubicaciones"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/mute-unmute","title":"Silenciar/Activar Sonido"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/request-configuration","title":"Configuración de Solicitud"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/request-preview","title":"Vista Previa de Solicitud"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/response-time-limits","title":"Límites de Tiempo de Respuesta"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/save-run","title":"Guardar y Ejecutar"}}},{"node":{"fields":{"slug":"/es-es/guides/api-monitoring/new-api-check/webhook-channels","title":"Canal Webhook"}}}]}},"pageContext":{"id":"c686f7e4-29cf-5d79-9381-1c89edecb95b","locale":"es-ES"}},"staticQueryHashes":["361965504","361965504","417421954","417421954","445494767","445494767"]}