Utilisation des modèles de scripts Canary - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation des modèles de scripts Canary

Cette section fournit des détails sur chacun des modèles de scripts Canary et les tâches auxquelles chaque modèle est le mieux adapté. Des plans sont fournis pour les types de scripts Canary suivants :

  • Moniteur de pulsations

  • APICanari

  • Vérificateur des liens cassés

  • Surveillance visuelle

  • Enregistreur de scripts Canary

  • GUIFlux de travail

Lorsque vous utilisez un plan pour créer un canari, lorsque vous remplissez les champs de la CloudWatch console, la zone éditeur de script de la page affiche le canari que vous créez sous la forme d'un script Node.js. Vous pouvez également modifier votre script Canary dans cette zone pour le personnaliser davantage.

Surveillance des pulsations

Les scripts Heartbeat chargent le fichier spécifié URL et stockent une capture d'écran de la page et un fichier d'HTTParchive (HARfichier). Ils stockent également les journaux des accèsURLs.

Vous pouvez utiliser les HAR fichiers pour afficher des données de performance détaillées sur les pages Web. Vous pouvez analyser la liste des demandes web et détecter des problèmes liés aux performances, notamment le temps de chargement d'un élément.

Si votre Canary utilise la version d'exécution syn-nodejs-puppeteer-3.1 ou une version ultérieure, vous pouvez utiliser le plan de surveillance du rythme cardiaque pour en surveiller plusieurs URLs et voir le statut, la durée, les captures d'écran associées et la raison de l'échec de chacune d'entre elles URL dans le résumé des étapes du rapport Canary Run.

APIcanari

APIles canaris peuvent tester les fonctions de lecture et d'écriture de base d'un RESTAPI. RESTsignifie transfert d'état représentatif et est un ensemble de règles que les développeurs suivent lors de la création d'unAPI. L'une de ces règles stipule qu'un lien vers un élément spécifique URL doit renvoyer une donnée.

Les Canaries peuvent travailler avec n'importe qui APIs et tester tous les types de fonctionnalités. Chaque canari peut passer plusieurs API appels.

Dans les canaris qui utilisent une version d'exécution syn-nodejs-2.2 ou ultérieure, le API canary blueprint prend en charge les canaris en plusieurs étapes qui surveillent vos pas. APIs HTTP Vous pouvez en tester plusieurs APIs dans un seul canari. Chaque étape est une demande distincte qui peut accéder à un en-tête différentURL, utiliser différents en-têtes et utiliser des règles différentes pour déterminer si les en-têtes et les corps de réponse sont capturés. En ne capturant pas les en-têtes et le corps de la réponse, vous pouvez empêcher l'enregistrement de données sensibles.

Chaque demande d'un API canari comprend les informations suivantes :

  • Le point de terminaison, qui est celui URL que vous demandez.

  • La méthode, qui est le type de demande envoyé au serveur. RESTAPIsopérations de support GET (lecture), POST (écriture), PUT (mise à jour), PATCH (mise à jour) et DELETE (suppression).

  • Les en-têtes, qui fournissent des informations à la fois au client et au serveur. Ils sont utilisés pour l'authentification et fournir des informations sur le contenu du corps. Pour obtenir la liste des en-têtes valides, consultez la section HTTPEn-têtes.

  • Les données (ou le corps) qui contiennent des informations à envoyer au serveur. Ceci est utilisé uniquement pourPOST, PUTPATCH, ou les DELETE demandes.

Les supports GET et les POST méthodes du API canari. Lorsque vous utilisez ce modèle, vous devez spécifier des en-têtes. Par exemple, vous pouvez spécifier Authorization en tant que Key (Clé) et spécifier les données d'autorisation nécessaires en tant que Value (Valeur) pour cette clé.

Si vous testez une POST demande, vous spécifiez également le contenu à publier dans le champ Données.

Intégration à API Gateway

Le API plan est intégré à Amazon API Gateway. Cela vous permet de sélectionner une API passerelle API et un stage à partir du même AWS compte et de la même région que le Canary, ou de télécharger un modèle Swagger depuis API Gateway pour une surveillance entre comptes et entre régions. API Vous pouvez ensuite choisir le reste des détails dans la console pour créer le script Canary, au lieu de les saisir à partir de zéro. Pour plus d'informations sur API Gateway, consultez Qu'est-ce qu'Amazon API Gateway ?

Utilisation d'un compte privé API

Vous pouvez créer un canari qui utilise un identifiant privé API dans Amazon API Gateway. Pour plus d'informations, consultez Création d'un compte privé API dans Amazon API Gateway ?

Le vérificateur de liens brisés collecte tous les liens contenus dans le fichier URL que vous testez en utilisantdocument.getElementsByTagName('a'). Il ne teste que le nombre de liens que vous spécifiez, et le lien URL lui-même est considéré comme le premier lien. Par exemple, si vous voulez vérifier tous les liens d'une page qui en contient cinq, vous devez spécifier que le script Canary doit suivre six liens.

Les scripts Canary du vérificateur de liens rompus créés à l'aide de l'exécution syn-nodejs-2.0-beta ou version ultérieure prennent en charge les fonctions supplémentaires suivantes :

  • Fourniture d'un rapport qui inclut les liens qui ont été vérifiés, le code d'état, la raison de l'échec (le cas échéant) et les captures d'écran des pages source et de destination.

  • Lors de l'affichage des résultats de scripts Canary, vous pouvez utiliser un filtre pour afficher uniquement les liens rompus, puis réparer ces liens en fonction de la raison de l'échec.

  • Cette version effectue pour chaque lien des captures d'écran annotées de la page source et met en surbrillance l'ancre où le lien a été trouvé. Les composants masqués ne sont pas annotés.

  • Vous pouvez configurer cette version pour effectuer des captures d'écran des pages source et de destination, des pages source uniquement ou des pages de destination uniquement.

  • Cette version résout un problème dans la version précédente qui provoquait l'arrêt du script Canary après le premier lien rompu, même lorsque d'autres liens sont récupérés à partir de la première page.

Si vous souhaitez mettre à jour un script Canary existant utilisant syn-1.0 afin qu'il utilise la nouvelle exécution, vous devez supprimer et recréer le script Canary. La mise à jour d'un script Canary existant vers la nouvelle exécution ne rend pas ces fonctions disponibles.

Un script Canary de vérification des liens rompus détecte les types d'erreurs de liens suivants :

  • 404 Page introuvable

  • Nom d'hôte non valide

  • MauvaisURL. Par exemple, URL il manque un crochet, comporte des barres obliques supplémentaires ou utilise le mauvais protocole.

  • Code de HTTP réponse non valide.

  • Le serveur hôte renvoie des réponses vides sans contenu ni code de réponse.

  • Les HTTP demandes expirent constamment pendant la course du canari.

  • L'hôte coupe systématiquement les connexions parce qu'il est mal configuré ou trop occupé.

Modèle de surveillance visuelle

Le modèle de surveillance visuelle inclut un code permettant de comparer les captures d'écran prises lors de l'exécution d'un script Canary aux captures d'écran prises lors de l'exécution d'un script Canary de référence. Si l'écart entre les deux captures d'écran dépasse un pourcentage de seuil, le script Canary échoue. La surveillance visuelle est prise en charge dans les canaris utilisant syn-puppeteer-node-3.2 et versions ultérieures. Elle n'est actuellement pas prise en charge dans les scripts Canary exécutant Python et Selenium.

Le modèle de surveillance visuelle inclut la ligne de code suivante dans le script Canary de modèle par défaut, cette ligne activant la surveillance visuelle.

syntheticsConfiguration.withVisualCompareWithBaseRun(true);

La première fois que le script Canary s'exécute avec succès après l'ajout de cette ligne au script, il utilise les captures d'écran prises au cours de cette exécution comme référence pour les comparaisons. Après cette première exécution de Canary, vous pouvez utiliser la CloudWatch console pour modifier le Canary afin d'effectuer l'une des opérations suivantes :

  • Définir la prochaine exécution du script Canary comme nouvelle référence.

  • Dessiner des limites sur la capture d'écran de référence actuelle pour désigner les zones de la capture d'écran à ignorer lors des comparaisons visuelles.

  • Empêcher une capture d'écran d'être utilisée pour la surveillance visuelle.

Pour plus d'informations sur l'utilisation de la CloudWatch console pour modifier un canari, consultezModification ou suppression d'un canary.

Vous pouvez également modifier le Canary Run utilisé comme référence en utilisant les lastrun paramètres nextrun or ou en spécifiant un ID Canary Run dans le UpdateCanaryAPI.

Lorsque vous utilisez le plan de surveillance visuelle, vous entrez l'URLendroit où vous souhaitez que la capture d'écran soit prise et vous spécifiez un seuil de différence sous forme de pourcentage. Après l'exécution de référence, les futures exécutions du script Canary qui détectent une différence visuelle supérieure à ce seuil déclenchent un échec du script Canary. Après l'exécution de référence, vous pouvez également modifier le script Canary pour « dessiner » des limites sur la capture d'écran de référence afin d'ignorer des zones pendant la surveillance visuelle.

La fonction de surveillance visuelle est alimentée par la boîte à outils logicielle ImageMagick open source. Pour plus d'informations, consultez ImageMagick.

Enregistreur de scripts Canary

Avec le plan Canary Recorder, vous pouvez utiliser le CloudWatch Synthetics Recorder pour enregistrer vos actions de clic et de saisie sur un site Web et générer automatiquement un script Node.js qui peut être utilisé pour créer un Canary suivant les mêmes étapes. Le CloudWatch Synthetics Recorder est une extension Google Chrome fournie par Amazon.

Crédits : The CloudWatch Synthetics Recorder est basé sur l'enregistreur Headless.

Pour de plus amples informations, veuillez consulter Utilisation de l' CloudWatch enregistreur Synthetics pour Google Chrome.

GUIgénérateur de flux de travail

Le plan GUI de Workflow Builder vérifie que des actions peuvent être entreprises sur votre page Web. Par exemple, si vous avez une page web avec un formulaire de connexion, le script Canary peut remplir les champs utilisateur et mot de passe et envoyer le formulaire pour vérifier le bon fonctionnement de la page web.

Lorsque vous utilisez un modèle pour créer ce type de script Canary, vous spécifiez les actions que ce dernier doit effectuer sur la page web. Les actions que vous pouvez utiliser sont les suivantes :

  • Click (Cliquer) : sélectionne l'élément que vous spécifiez et simule un utilisateur qui clique sur l'élément ou le choisit.

    Pour spécifier l'élément dans un script Node.js, utilisez [id=] ou a[class=].

    Pour spécifier l'élément dans un script Python, utilisez xpath //*[@id=] ou //*[@class=].

  • Verify selector (Vérifier le sélecteur) : vérifie que l'élément spécifié existe sur la page web. Ce test est utile pour vérifier qu'une action précédente a conduit les éléments corrects à remplir la page.

    Pour spécifier l'élément à vérifier dans un script Node.js, utilisez [id=] ou a[class=].

    Pour spécifier l'élément à vérifier dans un script Python, utilisez xpath //*[@id=] ou //*[class=].

  • Verify text (Vérifier le texte) : vérifie que la chaîne spécifiée est contenue dans l'élément cible. Ce test est utile pour vérifier qu'une action précédente a provoqué l'affichage du bon texte.

    Pour spécifier l'élément dans un script Node.js, utilisez un format tel que div[@id=]//h1, parce que cette action utilise la fonction waitForXPath dans Puppeteer.

    Pour spécifier l'élément dans un script Python, utilisez un format xpath tel que//*[@id=] ou //*[@class=], parce que cette action utilise la fonction implicitly_wait dans Selenium.

  • Input text (Saisir du texte) : écrit le texte spécifié dans l'élément cible.

    Pour spécifier l'élément à vérifier dans un script Node.js, utilisez [id=] ou a[class=].

    Pour spécifier l'élément à vérifier dans un script Python, utilisez xpath //*[@id=] ou //*[@class=].

  • Click with navigation (Cliquer avec la navigation) : attend que la page soit entièrement chargée après avoir choisi l'élément spécifié. Cela s'avère très utile lorsque vous devez recharger la page.

    Pour spécifier l'élément dans un script Node.js, utilisez [id=] ou a[class=].

    Pour spécifier l'élément dans un script Python, utilisez xpath //*[@id=] ou //*[@class=].

Par exemple, le modèle suivant utilise Node.js. Il clique firstButtonsur le champ spécifiéURL, vérifie que le sélecteur attendu avec le texte attendu apparaît, saisit le nom Test_Customer dans le champ Nom, clique sur le bouton Connexion, puis vérifie que la connexion est réussie en vérifiant le texte de bienvenue sur la page suivante.

La page Create Canary dans la console, avec des champs remplis pour le plan de GUI flux de travail.

GUIles canaries de flux de travail qui utilisent les environnements d'exécution suivants fournissent également un résumé des étapes exécutées pour chaque exécution de Canary. Vous pouvez utiliser les captures d'écran et le message d'erreur associés à chaque étape pour trouver la cause racine de l'échec.

  • syn-nodejs-2.0 ou version ultérieure

  • syn-python-selenium-1.0 ou version ultérieure