Mit vorkonfigurierten Vorlagen und Beispielcode können Sie synthetische Monitore in Node.js und TypeScript mit Frameworks wie Puppeteer, Selenium WebDriver und Mocha erstellen. Mit diesen Beispielen, die im GitHub-Repository synthetics-sdk-nodejs verfügbar sind, können Sie URLs abfragen, browserbasierte User Journeys ausführen, API-Endpunkte testen oder nach defekten Links suchen.
Richtlinien für die Verwendung von Beispielen und das Schreiben benutzerdefinierter Tests
Bevor Sie ein Beispiel bereitstellen oder einen benutzerdefinierten Test schreiben, sollten Sie die folgenden Anforderungen beachten:
- Ziel-URL aktualisieren: Bevor Sie Beispielcode bereitstellen, aktualisieren Sie das Feld
url, damit es auf Ihren Zielendpunkt verweist. Setzen Sie dieses Feld nicht aufhttps://www.google.com. Errorbei fehlgeschlagenem Test auslösen: Wenn Sie benutzerdefinierte Tests schreiben, anstatt eine Vorlage zu verwenden, muss Ihr Test bestanden werden, es sei denn, es wird einErrorausgelöst. Wir empfehlen, dieAssert-Bibliothek zu verwenden, damit alle Fehler der richtigen Codezeile zugeordnet werden.
Allgemeine Vorlagen
Die generischen Vorlagen sind so konfiguriert, dass Trace- und Logdaten für ausgehende HTTP-Anfragen erfasst werden. Die Lösung nutzt das OpenTelemetry-Modul auto-instrumentation-node und den Winston-Logger. Da die Struktur von Trace- und Logdaten von Open-Source-Produkten abhängt, kann es hier zu Änderungen kommen. Die erhobenen Trace- und Protokolldaten sollten daher nur zur Fehlerbehebung verwendet werden.
Sie können Ihren eigenen Ansatz zum Erfassen von Trace- und Logdaten für ausgehende HTTP-Anfragen implementieren. Ein Beispiel für einen benutzerdefinierten Ansatz finden Sie in der Klasse SyntheticAutoInstrumentation.
Generisches Node.js-Beispiel
Im Beispiel generic-synthetic-nodejs wird gezeigt, wie eine URL abgefragt wird. Dieses Beispiel enthält denselben Code wie die Standardfunktion, die in der Google Cloud -Konsole angezeigt wird. Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.
TypeScript-Beispiel
Im generic-synthetic-typescript-Beispiel wird gezeigt, wie eine URL abgefragt wird. Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.
Puppeteer-Vorlage
Wenn Sie Puppeteer verwenden, sollten Sie mit dem generic-puppeteer-nodejs-Beispiel beginnen.
Erforderliche Puppeteer-Einrichtung
Führen Sie die folgenden Schritte aus, um Puppeteer zu verwenden:
Fügen Sie
.puppeteerrc.cjsin das Quellverzeichnis Ihrer Cloud Run-Funktion ein:Fügen Sie der Datei
package.jsonIhrer Cloud Run Functions-Funktion das folgende Skript hinzu:"scripts": { "gcp-build": "node node_modules/puppeteer/install.mjs" },
Puppeteer-Beispiel
Im generic-puppeteer-nodejs-Beispiel wird veranschaulicht, wie Sie Puppeteer mit Ihrer Cloud Run-Funktion verwenden. Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.
Selenium WebDriver-Vorlage
Wenn Sie Selenium WebDriver verwenden, sollten Sie mit dem generic-selenium-nodejs-Beispiel beginnen. Das Beispiel, das auf GitHub verfügbar ist, enthält die Dateien index.js und package.json.
Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.
Mocha-Vorlage
Wenn Sie Tests schreiben, die auf der Mocha-Vorlage basieren, sollten Sie überlegen, ob eine Testsequenz fortgesetzt oder beendet werden soll, wenn ein Fehler auftritt. Wenn Sie eine Testsequenz nach einem Fehler beenden möchten, müssen Sie das Flag bail festlegen.
Ein End-to-End-Beispiel, das die Bereitstellung einer API, das Schreiben einer Beispiel-Mocha-Testsuite für die API-Endpunkte und die Konfiguration des synthetischen Monitors umfasst, finden Sie im Blog Google Cloud Synthetic Monitoring Tutorial.
Das mocha-url-ok-Beispiel veranschaulicht, wie eine Cloud Run-Funktion eine Mocha-Test-Suite aufrufen kann. Außerdem wird eine Beispiel-Test-Suite bereitgestellt.
Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.
Vorlage für fehlerhafte Links
Im broken-links-ok-Beispiel wird gezeigt, wie ein Tool zum Prüfen auf defekte Links konfiguriert wird.
Für diese Vorlage geben Sie nur die Werte des options-Objekts an. Dieses Objekt gibt den zu testenden URI und die Parameter des Tests an.
Wenn Sie Puppeteer verwenden, müssen Sie die Schritte unter Erforderliche Puppeteer-Einrichtung ausführen.
Wenn Sie das vollständige Beispiel sehen möchten, wählen Sie in der Symbolleiste des Beispiels das GitHub-Logo aus.