Utilisation des modèles de scripts Canary - Amazon CloudWatch

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

  • Script Canary d'API

  • Vérificateur des liens cassés

  • Surveillance visuelle

  • Enregistreur de scripts Canary

  • Workflow GUI

Si vous utilisez un modèle pour créer un script Canary, lorsque vous remplissez les champs de la console CloudWatch, la zone Script editor (Éditeur de script) de la page affiche le script Canary que vous êtes en train de créer en tant que script Node.js. Vous pouvez également modifier votre script Canary dans cette zone pour le personnaliser davantage.

Surveillance des pulsations

Les scripts de pulsations chargent l'URL spécifiée et stockent une capture d'écran de la page et un fichier d'archive HTTP (fichier HAR). Ils stockent également des journaux des URL consultées.

Vous pouvez utiliser les fichiers HAR pour afficher des données de performances 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 script Canary utilise la version d'exécution syn-nodejs-puppeteer-3.1 ou ultérieure, vous pouvez utiliser le modèle de surveillance des pulsations pour surveiller plusieurs URL et voir l'état, la durée, les captures d'écran associées et la raison de l'échec de chaque URL dans le résumé des étapes du rapport d'exécution du script Canary.

Script Canary d'API

Les scripts Canary d'API peuvent tester les fonctions de base de lecture et d'écriture d'une API REST. REST, qui signifie transfert d'état représentatif, est un ensemble de règles que les développeurs suivent lors de la création d'une API. L'une de ces règles stipule qu'un lien vers une URL spécifique doit renvoyer un élément de données.

Les scripts Canary peuvent fonctionner avec n'importe quelle API et tester tous les types de fonctionnalités. Chaque script Canary peut effectuer plusieurs appels d'API.

Dans les scripts Canary qui utilisent la version d'exécution syn-nodejs-2.2 ultérieure, le modèle de script Canary d'API prend en charge les scripts Canary à plusieurs étapes qui contrôlent vos API en tant qu'étapes HTTP. Vous pouvez tester plusieurs API dans un seul script Canary. Chaque étape est une demande distincte qui peut accéder à des URL différentes, utiliser des en-têtes différents et 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 dans un script Canary d'API comprend les informations suivantes :

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

  • La méthode, qui est le type de demande envoyé au serveur. Les API REST prennent en charge les opérations 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 une liste d'en-têtes valides, consultez En-têtes HTTP.

  • Les données (ou le corps) qui contiennent des informations à envoyer au serveur. Utilisées uniquement pour les demandes POST, PUT, PATCH ou DELETE.

Note

Les plans de script Canary API ne sont pas pris en charge par les exécutions Playwright.

Le modèle de script Canary d'API prend en charge les méthodes GET et POST. 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 demande POST, vous spécifiez également le contenu à publier dans le champ Data (Données).

Intégration à API Gateway

Le modèle d'API est intégré à Amazon API Gateway. Cela vous permet de sélectionner une API et une étape API Gateway à partir de la même région et du même compte AWS que le script canary, ou de télécharger un modèle Swagger depuis API Gateway pour la surveillance des API inter-comptes et inter-régions. 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'une API privée

Vous pouvez créer un script canary utilisant une API privée dans Amazon API Gateway. Pour de plus amples informations, veuillez consulter Création d'une API privée dans Amazon API Gateway ?

Le vérificateur de liens rompus collecte tous les liens à l'intérieur de l'URL que vous testez en utilisant document.getElementsByTagName('a'). Il teste uniquement le nombre de liens que vous spécifiez et l'URL elle-même est considérée 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.

Note

Les plans de vérification de liens brisés ne sont pas pris en charge par les exécutions Playwright.

Pour mettre à jour un script Canary existant à l’aide de syn-1.0 afin d’utiliser une nouvelle exécution, vous devez supprimer le script Canary existant et en créer un nouveau. 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

  • URL incorrecte. Par exemple, il manque un crochet dans l'URL, elle a des barres obliques supplémentaires ou elle utilise le mauvais protocole.

  • Code de réponse HTTP non valide.

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

  • Les requêtes HTTP expirent constamment pendant l'exécution du script Canary.

  • 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 scripts Canary exécutant syn-marionnettier-node-3.2 et version ultérieure. Cette fonctionnalité n’est actuellement pas prise en charge pour les scripts Canary utilisant Python et Selenium, ni pour ceux utilisant l’exécution Playwright.

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 du script Canary, vous pouvez utiliser la console CloudWatch pour modifier le script 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 console CloudWatch pour modifier un script Canary, consultez Modification ou suppression d'un canary.

Vous pouvez également modifier l'exécution de script Canary utilisée comme référence à l'aide des paramètres nextrun ou lastrun, ou en spécifiant un ID d'exécution de script Canary dans l'API UpdateCanary.

Lorsque vous utilisez le modèle de surveillance visuelle, vous saisissez l'URL à laquelle vous souhaitez effectuer la capture d'écran 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 du logiciel open source ImageMagick. Pour de plus amples informations, consultez ImageMagick.

Enregistreur de scripts Canary

Avec le modèle d'enregistreur de scripts Canary, vous pouvez utiliser 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 script Canary qui suit les mêmes étapes. CloudWatch Synthetics Recorder est une extension Google Chrome fournie par Amazon. L’enregistreur Canary n’est pas pris en charge pour les scripts Canary utilisant l’exécution Playwright.

Crédits : CloudWatch Synthetics Recorder est basé sur Headless Recorder .

Pour de plus amples informations, consultez Utilisation de CloudWatch Synthetics Recorder pour Google Chrome.

Générateur de flux de travail GUI

Le modèle de générateur de flux de travail GUI vérifie que des actions peuvent être effectuées 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 sur le firstButton dans l'URL spécifiée, il vérifie que le sélecteur attendu s'affiche avec le texte attendu, il saisit le nom Test_Customer dans le champ Name (Nom), il clique sur le bouton Login (Connexion) et il vérifie ensuite que la connexion a réussi en recherchant le texte Welcome (Bienvenue) sur la page suivante.

Page de création d'un script Canary dans la console, avec des champs remplis pour le modèle de flux de travail GUI.

Les scripts Canary du flux de travail GUI qui utilisent les exécutions suivantes fournissent également un résumé des étapes exécutées pour chaque exécution de script 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