Scripts de préparation et de nettoyage
Un script de setup s'exécute une fois juste avant une vérification et un script de teardown une fois juste après. Utilisez-les pour récupérer un jeton, préparer des données avant la vérification ou nettoyer ce que la vérification a créé. Ils fonctionnent sur les vérifications API, multi-étapes et navigateur. Les moniteurs DNS et TCP ne les exécutent pas.
Pour en ajouter un, ouvrez l'éditeur de la vérification, trouvez Exécuter des scripts de configuration ou de finalisation ?, cliquez sur Voir l'Éditeur et utilisez les onglets Script de Configuration et Script de Finalisation. Les scripts sont en JavaScript et s'exécutent dans un bac à sable isolé à chaque exécution, dans chaque région, avec leur sortie console capturée.
Ce que reçoit chaque script
Section intitulée « Ce que reçoit chaque script »- Vérification API : le script de setup reçoit
request; le script de teardown reçoitrequestetresponse(response.statusCode,response.bodysous forme de texte,response.headers). L'objetrequestd'un script de setup est une copie à lire par votre script. Le modifier ne change pas la requête qu'envoie LoadFocus : utilisez donc le setup pour faire du travail en amont (par exemple créer un enregistrement dont la vérification a besoin), et le teardown pour nettoyer après la réponse. - Vérification multi-étapes : le script de setup reçoit
ctx. Tout ce que vous stockez dansctx.varspeut être utilisé dans chaque étape sous la forme{{name}}. Le script de teardown reçoitctxet leresultde l'exécution. - Vérification navigateur : le script de setup s'exécute avant le démarrage du navigateur et remplit
ctx.varspour le parcours ; le script de teardown s'exécute après.
Ce que vous pouvez utiliser
Section intitulée « Ce que vous pouvez utiliser »Dans un script, vous pouvez utiliser require pour :
gotetaxios: faire des appels HTTP, par exemple pour échanger des identifiants contre un jeton OAuth. Les appels vers des adresses privées, de loopback et link-local sont bloqués.crypto: hachages et signatures HMAC.@faker-js/faker: des données de test réalistes et uniques.urletpath: utilitaires pour construire des URLs et des chemins.- Snippets : du code partagé enregistré une fois et chargé avec
require("./snippets/name"). Voir Snippets.
La sortie de console.log s'affiche dans les logs du script.
Exemple : récupérer un jeton OAuth dans le setup d'une vérification multi-étapes
Section intitulée « Exemple : récupérer un jeton OAuth dans le setup d'une vérification multi-étapes »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();
// Rendre le jeton disponible pour chaque étape sous la forme {{token}}ctx.vars.token = tokenResponse.access_token;Dans chaque étape, réglez la valeur de l'en-tête sur Bearer {{token}}.
Exemple : nettoyer dans le teardown d'une vérification API
Section intitulée « Exemple : nettoyer dans le teardown d'une vérification API »const got = require('got');
// Si la requête a créé une ressource, supprimez-la pour que le moniteur ne laisse aucune traceif (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}}' }, });}Secrets et variables
Section intitulée « Secrets et variables »Référencez un secret ou une variable enregistrés avec ${{NAME}} dans un script. LoadFocus le remplace par la valeur juste avant l'exécution du script, si bien que les identifiants ne figurent jamais en clair dans le script. Une référence sans le signe dollar, comme {{NAME}}, n'est pas remplacée dans un script. Voir Variables.
Tester vos scripts
Section intitulée « Tester vos scripts »Dans l'éditeur de script, EXÉCUTER LE SCRIPT lance le script contre le vrai point de terminaison et affiche le résultat. Ouvrez VOIR LES JOURNAUX pour voir ce que le script a affiché. Une exécution de test compte comme une exécution dans votre usage mensuel.
- Chaque script est limité à 100 Ko.
- Si le script de setup échoue, la vérification n'est pas envoyée et l'exécution est marquée comme échouée. C'est généralement ce que vous voulez : pas de jeton valide, pas de vérification valide.
- Un échec du teardown est signalé dans les logs mais ne change pas le résultat de l'exécution.