Ir al contenido

Scripts de configuración y limpieza

Un script de setup se ejecuta una vez justo antes de una verificación y un script de teardown una vez justo después. Úsalos para obtener un token, preparar datos antes de la verificación o limpiar lo que creó la verificación. Funcionan en verificaciones de API, multipaso y de navegador. Los monitores DNS y TCP no los ejecutan.

Para añadir uno, abre el editor de la verificación, busca ¿Ejecutar scripts de configuración o finalización?, haz clic en Ver Editor y usa las pestañas Script de Configuración y Script de Finalización. Los scripts son JavaScript y se ejecutan en un entorno aislado en cada ejecución, en cada región, con su salida de consola capturada.

  • Verificación de API: el script de setup recibe request; el de teardown recibe request y response (response.statusCode, response.body como texto, response.headers). El objeto request de un script de setup es una copia para que tu script la lea. Cambiarlo no cambia la petición que envía LoadFocus, así que usa el setup para hacer trabajo previo (por ejemplo, crear un registro que la verificación necesita) y el teardown para limpiar tras la respuesta.
  • Verificación multipaso: el script de setup recibe ctx. Todo lo que guardes en ctx.vars se puede usar en cada paso como {{name}}. El script de teardown recibe ctx y el result de la ejecución.
  • Verificación de navegador: el script de setup se ejecuta antes de que arranque el navegador y rellena ctx.vars para el flujo; el de teardown se ejecuta después.

Dentro de un script puedes usar require con:

  • got y axios: hacer llamadas HTTP, por ejemplo para canjear credenciales por un token OAuth. Las llamadas a direcciones privadas, de loopback y link-local están bloqueadas.
  • crypto: hashes y firmas HMAC.
  • @faker-js/faker: datos de prueba realistas y únicos.
  • url y path: utilidades para construir URLs y rutas.
  • Snippets: código compartido guardado una vez y cargado con require("./snippets/name"). Consulta Snippets.

La salida de console.log se muestra en los logs del script.

Ejemplo: obtener un token OAuth en el setup de una verificación multipaso

Sección titulada «Ejemplo: obtener un token OAuth en el setup de una verificación multipaso»
const got = require('got');
const tokenResponse = await got.post('https://auth.example.com/oauth/token', {
json: {
grant_type: 'client_credentials',
client_id: '${{CLIENT_ID}}',
client_secret: '${{CLIENT_SECRET}}',
},
}).json();
// Haz que el token esté disponible en cada paso como {{token}}
ctx.vars.token = tokenResponse.access_token;

En cada paso, establece el valor de la cabecera en Bearer {{token}}.

Ejemplo: limpiar en el teardown de una verificación de API

Sección titulada «Ejemplo: limpiar en el teardown de una verificación de API»
const got = require('got');
// Si la petición creó un recurso, bórralo para que el monitor no deje rastro
if (response.statusCode === 201 && response.body) {
const created = JSON.parse(response.body);
await got.delete('https://api.example.com/items/' + created.id, {
headers: { Authorization: 'Bearer ${{API_TOKEN}}' },
});
}

Haz referencia a un secreto o variable guardados con ${{NAME}} dentro de un script. LoadFocus lo sustituye por el valor justo antes de ejecutar el script, así que las credenciales nunca quedan en texto plano en el script. Una referencia sin el signo de dólar, como {{NAME}}, no se sustituye en un script. Consulta Variables.

En el editor de scripts, EJECUTAR SCRIPT ejecuta el script contra el endpoint real y muestra el resultado. Abre VER REGISTROS para ver lo que imprimió el script. Una ejecución de prueba cuenta como una ejecución en tu uso mensual.

  • Cada script está limitado a 100 KB.
  • Si el script de setup falla, la verificación no se envía y la ejecución se marca como fallida. Normalmente es lo que quieres: sin token válido no hay verificación válida.
  • Un fallo de teardown se informa en los logs pero no cambia el resultado de la ejecución.