Setup- und Teardown-Skripte
Ein Setup-Skript läuft einmal direkt vor einer Prüfung und ein Teardown-Skript einmal direkt danach. Damit holen Sie ein Token, bereiten Daten für die Prüfung vor oder räumen auf, was die Prüfung angelegt hat. Sie funktionieren bei API-Prüfungen, Multistep-Prüfungen und Browser-Prüfungen. DNS- und TCP-Monitore führen sie nicht aus.
Um eines hinzuzufügen, öffnen Sie den Prüfungseditor, suchen Sie Setup- oder Teardown-Skripte ausführen?, klicken Sie auf Editor anzeigen und nutzen Sie die Tabs Setup-Skript und Teardown-Skript. Die Skripte sind JavaScript und laufen bei jedem Lauf, in jeder Region, in einer isolierten Sandbox, wobei ihre Konsolenausgabe erfasst wird.
Was jedes Skript erhält
Abschnitt betitelt „Was jedes Skript erhält“- API-Prüfung: Das Setup-Skript erhält
request; das Teardown-Skript erhältrequestundresponse(response.statusCode,response.bodyals Text,response.headers). Das Objektrequestin einem Setup-Skript ist eine Kopie, die Ihr Skript lesen kann. Es zu ändern ändert nicht die Anfrage, die LoadFocus sendet. Nutzen Sie Setup also, um vorab Arbeit zu erledigen (zum Beispiel einen Datensatz anzulegen, den die Prüfung braucht), und das Teardown-Skript, um nach der Antwort aufzuräumen. - Multistep-Prüfung: Das Setup-Skript erhält
ctx. Alles, was Sie inctx.varsablegen, können Sie in jedem Schritt als{{name}}verwenden. Das Teardown-Skript erhältctxund das Lauf-result. - Browser-Prüfung: Das Setup-Skript läuft, bevor der Browser startet, und füllt
ctx.varsfür den Ablauf; das Teardown-Skript läuft danach.
Was Sie verwenden können
Abschnitt betitelt „Was Sie verwenden können“In einem Skript können Sie require nutzen für:
gotundaxios: HTTP-Aufrufe, zum Beispiel um Zugangsdaten gegen ein OAuth-Token einzutauschen. Aufrufe an private, Loopback- und Link-Local-Adressen werden blockiert.crypto: Hashes und HMAC-Signaturen.@faker-js/faker: realistische, eindeutige Testdaten.urlundpath: Helfer zum Bauen von URLs und Pfaden.- Snippets: gemeinsamer Code, einmal gespeichert und mit
require("./snippets/name")geladen. Siehe Snippets.
Die Ausgabe von console.log wird unter den Logs des Skripts angezeigt.
Beispiel: ein OAuth-Token im Multistep-Setup holen
Abschnitt betitelt „Beispiel: ein OAuth-Token im Multistep-Setup holen“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();
// Das Token jedem Schritt als {{token}} zur Verfügung stellenctx.vars.token = tokenResponse.access_token;Setzen Sie in jedem Schritt den Header-Wert auf Bearer {{token}}.
Beispiel: im Teardown einer API-Prüfung aufräumen
Abschnitt betitelt „Beispiel: im Teardown einer API-Prüfung aufräumen“const got = require('got');
// Hat die Anfrage eine Ressource angelegt, löschen Sie sie, damit der Monitor keine Spuren hinterlässtif (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 und Variablen
Abschnitt betitelt „Secrets und Variablen“Verweisen Sie in einem Skript mit ${{NAME}} auf ein gespeichertes Secret oder eine Variable. LoadFocus ersetzt es kurz vor der Ausführung des Skripts durch den Wert, sodass Zugangsdaten nie im Klartext im Skript stehen. Ein Verweis ohne Dollarzeichen, etwa {{NAME}}, wird in einem Skript nicht ersetzt. Siehe Variablen.
Ihre Skripte testen
Abschnitt betitelt „Ihre Skripte testen“Im Skripteditor führt SKRIPT AUSFÜHREN das Skript gegen den echten Endpunkt aus und zeigt das Ergebnis. Öffnen Sie LOGS ANZEIGEN, um zu sehen, was das Skript ausgegeben hat. Ein Testlauf zählt als ein Lauf auf Ihre monatliche Nutzung.
- Jedes Skript ist auf 100 KB begrenzt.
- Schlägt das Setup-Skript fehl, wird die Prüfung nicht gesendet und der Lauf als fehlgeschlagen markiert. Das ist meist gewollt: kein gültiges Token, keine gültige Prüfung.
- Ein Teardown-Fehler wird in den Logs gemeldet, ändert aber nicht das Ergebnis des Laufs.