Utilizzo dei blueprint dei canary - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo dei blueprint dei canary

Questa sezione fornisce dettagli su ciascuno dei blueprint dei canary e sulle attività per cui il blueprint è più adatto. I piani sono forniti per i seguenti tipi di Canary:

  • Monitoraggio dell'heartbeat

  • APICanarie

  • Controllo collegamento interrotto

  • Monitoraggio visivo

  • Registratore di Canary

  • Flusso di lavoro di GUI

Quando si utilizza un blueprint per creare un canarino, mentre si compilano i campi nella CloudWatch console, nell'area dell'editor di script della pagina viene visualizzato il canarino che si sta creando come script Node.js. Puoi anche modificare il canary in quest'area per personalizzarlo ulteriormente.

Monitoraggio dell'heartbeat

Gli script Heartbeat caricano il file specificato URL e memorizzano uno screenshot della pagina e un file di archivio (file). HTTP HAR Inoltre memorizzano i registri degli accessi. URLs

È possibile utilizzare i HAR file per visualizzare dati dettagliati sulle prestazioni delle pagine Web. Puoi analizzare l'elenco delle richieste Web e rilevare problemi di prestazioni, ad esempio il tempo di caricamento di un elemento.

Se il tuo canary utilizza la versione di runtime syn-nodejs-puppeteer-3.1 o una versione successiva, puoi utilizzare il blueprint di monitoraggio del battito cardiaco per monitorarne più di uno URLs e visualizzare lo stato, la durata, le schermate associate e il motivo dell'errore URL nel riepilogo delle fasi del rapporto Canary Run.

APIcanarino

APIcanaries può testare le funzioni di base di lettura e scrittura di un. REST API RESTsta per trasferimento dello stato rappresentativo ed è un insieme di regole che gli sviluppatori seguono durante la creazione di un. API Una di queste regole afferma che un collegamento a uno specifico URL dovrebbe restituire un dato.

Canaries può funzionare con qualsiasi tipo di funzionalità APIs e testare tutti i tipi di funzionalità. Ogni canarino può effettuare più API chiamate.

Nei canarini che utilizzano la versione runtime syn-nodejs-2.2 o successiva, API Canary Blueprint supporta canarini in più fasi che monitorano i passi degli annunci. APIs HTTP Puoi testarne più APIs di uno in un unico canarino. Ogni passaggio è una richiesta separata che può accedere a una diversaURL, utilizzare intestazioni diverse e utilizzare regole diverse per l'acquisizione delle intestazioni e dei corpi di risposta. Non catturando intestazioni e corpo della risposta, è possibile impedire la registrazione di dati sensibili.

Ogni richiesta in un API canarino contiene le seguenti informazioni:

  • L'endpoint, che è URL quello richiesto.

  • Il metodo, che è il tipo di richiesta che viene inviata al server. RESTAPIsoperazioni di supporto GET (lettura), POST (scrittura), PUT (aggiornamento), PATCH (aggiornamento) e DELETE (eliminazione).

  • Le intestazioni, che forniscono informazioni sia al client che al server. Vengono utilizzate per l'autenticazione e per fornire informazioni sul contenuto del corpo. Per un elenco di intestazioni valide, vedi HTTPHeaders.

  • I dati (o corpo), che contengono informazioni da inviare al server. Viene utilizzato solo perPOST, PUTPATCH, o DELETE richieste.

Supporti GET e API metodi del progetto Canary. POST Quando utilizzi questo blueprint, devi specificare le intestazioni. Ad esempio, puoi specificare Authorization come chiave e specificare i dati di autorizzazione necessari come valore per tale chiave.

Se stai testando una POST richiesta, specifichi anche il contenuto da pubblicare nel campo Dati.

Integrazione con API Gateway

Il API modello è integrato con Amazon API Gateway. Ciò ti consente di selezionare un API Gateway API e uno stage dallo stesso AWS account e dalla stessa regione di Canary, oppure di caricare un modello Swagger da API Gateway per il monitoraggio su più account e più regioni. API Puoi quindi scegliere il resto dei dettagli nella console per creare il canary, invece di inserirli da zero. Per ulteriori informazioni su API Gateway, consulta Cos'è Amazon API Gateway?

Usare un account privato API

Puoi creare un canarino che utilizza un canale privato API in Amazon API Gateway. Per ulteriori informazioni, consulta Creare un account privato API in Amazon API Gateway?

Il Broken Link Checker raccoglie tutti i link all'interno del file URL che stai testando utilizzando. document.getElementsByTagName('a') Verifica solo il numero di collegamenti specificato e viene conteggiato come primo collegamento. URL Ad esempio, se si desidera controllare tutti i collegamenti in una pagina contenente cinque collegamenti, è necessario specificare che il canary segua sei collegamenti.

I canary di controllo del collegamento interrotto creati utilizzando la versione runtime syn-nodejs-2.0-beta o versioni successive supportano le caratteristiche aggiuntive elencate di seguito:

  • Fornisce un report che include i collegamenti controllati, il codice di stato, il motivo dell'errore (se presente) e le schermate della pagina di origine e di destinazione.

  • Quando si visualizzano i risultati del canary, è possibile filtrarli per visualizzare solo i collegamenti interrotti e quindi correggere il collegamento in base al motivo dell'errore.

  • Questa versione cattura screenshot della pagina sorgente annotata per ogni collegamento ed evidenzia l'ancoraggio in cui è stato trovato il collegamento. I componenti nascosti non vengono annotati.

  • Puoi configurare questa versione per acquisire screenshot di entrambe le pagine di origine e di destinazione, solo pagine di origine o solo pagine di destinazione.

  • Questa versione risolve un problema nella versione precedente in cui lo script canary si interrompe dopo il primo collegamento interrotto anche quando più collegamenti vengono estratti dalla prima pagina.

Se si desidera aggiornare un canary esistente utilizzando syn-1.0 per utilizzare il nuovo runtime, devi eliminare e ricreare il canary. L'aggiornamento di un canary esistente al nuovo runtime non rende disponibili queste funzionalità.

Un canary di controllo del collegamento interrotto rileva i seguenti tipi di errori di collegamento:

  • 404 Pagina non trovata

  • Nome host non valido

  • CattivoURL. Ad esempio, URL manca una parentesi, presenta barre aggiuntive o utilizza il protocollo sbagliato.

  • Codice di risposta non validoHTTP.

  • Il server host restituisce risposte vuote senza contenuto e senza codice di risposta.

  • Le HTTP richieste scadono costantemente durante la corsa del canarino.

  • L'host elimina costantemente le connessioni perché non è configurato correttamente o è troppo occupato.

Blueprint di monitoraggio visivo

Il blueprint di monitoraggio visivo include il codice per confrontare gli screenshot acquisiti durante un'esecuzione del canary con gli screenshot acquisiti durante un'esecuzione del canary di riferimento. Se la discrepanza tra i due screenshot supera una percentuale di soglia, il canary fallisce. Il monitoraggio visivo è supportato nei canari con versione syn-puppeteer-node-3.2 e versioni successive. Attualmente non è supportato nei canary che eseguono Python e Selenium.

Il blueprint di monitoraggio visivo include la seguente riga di codice nello script canary del blueprint predefinito, che consente il monitoraggio visivo.

syntheticsConfiguration.withVisualCompareWithBaseRun(true);

La prima volta che il canary viene eseguito correttamente dopo che questa riga è stata aggiunta allo script, utilizza gli screenshot acquisiti durante l'esecuzione come riferimento per il confronto. Dopo la prima esecuzione del canarino, puoi usare la CloudWatch console per modificare il canarino per eseguire una delle seguenti operazioni:

  • Imposta l'esecuzione successiva del canary come nuovo riferimento.

  • Disegna dei limiti sullo screenshot di riferimento corrente per designare le aree dello screenshot da ignorare durante i confronti visivi.

  • Rimuovi uno screenshot dall'utilizzo per il monitoraggio visivo.

Per ulteriori informazioni sull'utilizzo della CloudWatch console per modificare un canarino, consulta. Modifica o eliminazione di un canary

È inoltre possibile modificare la canary run utilizzata come linea di base utilizzando i lastrun parametri nextrun o o specificando un ID Canary Run nel. UpdateCanaryAPI

Quando si utilizza il blueprint di monitoraggio visivo, si immette il URL punto in cui si desidera che venga scattata la schermata e si specifica una soglia di differenza in percentuale. Dopo l'esecuzione di riferimento, le esecuzioni future del canary che rilevano una differenza visiva maggiore di quella soglia attivano un errore del canary. Dopo l'esecuzione di riferimento, puoi anche modificare il canary per “disegnare” i limiti sullo screenshot della linea di base che desideri ignorare durante il monitoraggio visivo.

La funzionalità di monitoraggio visivo è fornita dal toolkit software ImageMagick open source. Per ulteriori informazioni, vedere ImageMagick.

Registratore di Canary

Con il progetto Canary Recorder, è possibile utilizzare CloudWatch Synthetics Recorder per registrare le azioni di clic e digitazione su un sito Web e generare automaticamente uno script Node.js che può essere utilizzato per creare un canarino che segue gli stessi passaggi. CloudWatchSynthetics Recorder è un'estensione di Google Chrome fornita da Amazon.

Crediti: Il CloudWatch Synthetics Recorder è basato sul registratore Headless.

Per ulteriori informazioni, consulta Utilizzo del CloudWatch Synthetics Recorder per Google Chrome.

GUIgeneratore di flussi di lavoro

Il blueprint GUI Workflow Builder verifica che sia possibile intraprendere azioni sulla tua pagina web. Ad esempio, se si dispone di una pagina Web con un modulo di accesso, il canary può compilare i campi utente e password e inviare il modulo per verificare che la pagina Web funzioni correttamente.

Quando utilizzi un blueprint per creare questo tipo di canary, si specificano le azioni che si desidera che il canary esegua nella pagina Web. Le azioni che è possibile utilizzare sono le seguenti:

  • Click (Fai clic): seleziona l'elemento specificato e simula un utente che fa clic o sceglie l'elemento.

    Per specificare l'elemento in uno script Node.js, utilizza [id=] o a[class=].

    Per specificare l'elemento in uno script Python, utilizza xpath //*[@id=] o //*[@class=].

  • Verify selector (Verifica selettore): verifica che l'elemento specificato esista nella pagina Web. Questo test è utile per verificare che un'azione precedente ha permesso agli elementi corretti di popolare la pagina.

    Per specificare l'elemento per verificare uno script Node.js, utilizza [id=] o a[class=].

    Per specificare l'elemento per verificare uno script Python, utilizza xpath //*[@id=] o //*[class=].

  • Verify text (Verifica testo): verifica che la stringa specificata sia contenuta all'interno dell'elemento di destinazione. Questo test è utile per verificare che un'azione precedente abbia portato alla visualizzazione del testo corretto.

    Per specificare l'elemento un uno script Node.js, utilizza un formato ad esempio div[@id=]//h1, perché questa azione utilizza la funzione waitForXPath in Puppeteer.

    Per specificare l'elemento in uno script Python, utilizza il formato xpath ad esempio //*[@id=] o //*[@class=] perché questa azione utilizza la funzione implicitly_wait in Selenium.

  • Input text (Testo di input): scrive il testo specificato nell'elemento di destinazione.

    Per specificare l'elemento per verificare uno script Node.js, utilizza [id=] o a[class=].

    Per specificare l'elemento per verificare uno script Python, utilizza xpath //*[@id=] o //*[@class=].

  • Click with navigation (Fai clic con la navigazione): attende il caricamento dell'intera pagina dopo aver scelto l'elemento specificato. Questo è molto utile quando è necessario ricaricare la pagina.

    Per specificare l'elemento in uno script Node.js, utilizza [id=] o a[class=].

    Per specificare l'elemento in uno script Python, utilizza xpath //*[@id=] o //*[@class=].

Ad esempio, il blueprint riportato di seguito utilizza Node.js. Fa clic firstButtonsul file specificatoURL, verifica che venga visualizzato il selettore previsto con il testo previsto, inserisce il nome Test_Customer nel campo Nome, fa clic sul pulsante Accedi e quindi verifica che l'accesso sia riuscito controllando il testo di benvenuto nella pagina successiva.

La pagina Create Canary nella console, con i campi compilati per il blueprint Workflow. GUI

GUIworkflow canaries che utilizza i seguenti runtime forniscono anche un riepilogo dei passaggi eseguiti per ogni esecuzione di canary. Puoi utilizzare le schermate e il messaggio di errore associati a ogni passaggio per trovare la causa principale dell'errore.

  • syn-nodejs-2.0 o versione successiva

  • syn-python-selenium-1.0 o versione successiva