Créer un script
Pour utiliser la fonction de surveillance de la disponibilité pour les types de moniteur Navigateur avec script et REST avec script, vous devez d'abord créer et charger un script, qui est un chemin d'utilisateur enregistré utilisé pour simuler des transactions utilisateur dans l'application.
Le script doit être enregistré avec l'un des types de fichier suivants, selon le type de moniteur que vous souhaitez créer à l'aide du script :
- Fichier
.side
applicable uniquement au type de moniteur Scripted Browser. Le.side
est créé à l'aide de l'enregistreur IDE (environnement de développement intégré) en sélénium. Pour plus d'informations sur les commandes Selenium et sur l'exportation d'un fichier.side
, voir la documentation sur Selenium. Notez que vous ne pouvez charger qu'un seul script dans Application Performance Monitoring, le chargement d'une suite de tests n'est pas pris en charge. - Fichier
.ts
applicable uniquement au type de moniteur Scripted Browser. Vous pouvez utiliser.ts
TypeScript lorsque vous travaillez avec Playwright. Pour plus d'informations sur Playwright, consultez https://playwright.dev/docs/intro. - Fichier
.js
applicable uniquement au type de moniteur REST avec script. Le fichier.js
peut être créé à l'aide de l'ensemblepostman-request
. Pour plus d'informations sur l'ensemblepostman-request
, voir postman-request.
Pour charger le script dans le service de surveillance de la performance des applications :
Vous pouvez également utiliser les options disponibles en haut de la page pour effectuer les actions suivantes sur le script :
- Modifier : Cliquez sur cette option pour modifier le script. Notez que si un moniteur utilise ce script, la modification du script peut entraîner une incompatibilité des paramètres et vous devrez apporter les modifications correspondantes au moniteur.
- Voir : Cliquez sur cette option pour afficher le script.
- Télécharger : Cliquez sur cette option pour télécharger le script (
.side
,.playwright
ou.js
). - Ajouter des marqueurs : Cliquez sur cette option pour ajouter des marqueurs au script.
- Supprimer : Cliquez sur cette option pour supprimer le script. Notez que si un moniteur utilise ce script, vous ne pouvez pas le supprimer.
Au bas de la page, vous pouvez voir la liste des moniteurs qui utilisent le script ou cliquez sur Créer un moniteur pour créer un moniteur avec script. Pour plus d'informations, voir Créer un moniteur.
Options avancées pour mettre à jour les scripts
Les scripts de la surveillance de la disponibilité vous permettent d'enregistrer des chemins d'utilisateur et de simuler des transactions utilisateur dans une application.
Vous pouvez mettre à jour le script avec des commandes personnalisées pour effectuer certaines tâches, et les sections suivantes détaillent certaines des commandes que vous pouvez ajouter au script :
Il est recommandé de toujours utiliser un script initial et de le charger et de le valider dans un moniteur avec script exécuté dans Application Performance Monitoring, avant de le modifier et d'apporter des modifications. La mise à jour du script à l'aide de contenus personnalisés tels que des variables peut interférer avec la réexécution du script à partir de votre déploiement Selenium IDE local.
Ajouter des variables personnalisées
Vous pouvez ajouter des variables personnalisées au contenu des scripts .side
et .js
, qui peuvent être utilisées pour définir des paramètres dynamiques. Vous pouvez ainsi contrôler ces paramètres à partir du script ou du moniteur dans le service de surveillance de la performance des applications. Par exemple, si vous prévoyez qu'un nom d'utilisateur ou un nom de sélection d'élément va changer ou si vous voulez faire d'une telle valeur une clé secrète pour que les autres utilisateurs qui ont accès au moniteur ne puissent pas voir la valeur, vous pouvez utiliser des variables personnalisées.
param name
est obligatoire, mais param value
et isParamValueSecret
sont facultatifs. La valeur par défaut pour isParamValueSecret
est false
. Voir les formats ci-dessous :
-
Format latéral et JS :
<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>
-
Format Playwright :
console.log("<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>");
Ajouter des marqueurs personnalisés
Vous pouvez ajouter des commandes de marqueur personnalisé au contenu des scripts .side
et .js
, qui peuvent être utilisées pour transmettre un message et une durée personnalisés du script à l'explorateur de mesures dans le service de surveillance. Cela vous permet de transmettre une dimension CustomMarker, par exemple "DURATION : Vérifier les éléments" et une opération, par exemple setValue
au service de surveillance. La dimension CustomMarker est disponible avec la mesure CustomMetric et, à l'aide de cette dimension, vous pouvez ajouter les opérations suivantes au script sous forme de marqueurs de durée pour les étapes de transaction, comme la durée entre la connexion et le chargement complet de la page :
setValue
: Enregistre la durée entre l'heure de début du script et l'heure à laquelle cette opération est appelée.startTime
: Enregistre la durée entre cette opération et l'opérationendTime
.endTime
: Enregistre la durée entre l'opérationstartTime
et cette opération.
Notez que les opérations startTime
et endTime
fonctionnent conjointement. Pour une valeur CustomMarker contenant les opérations startTime
et endTime
, la valeur de mesure est <endTime - startTime>
.
Voici les commandes et les exemples de la dimension et des opérations CustomMarker :
- Script latéral :
Ajoutez des blocs de commande avec l'opération à effectuer. La valeur de la commande doit être
Voici la commande utilisée pour saisir un marqueur personnalisé dans un scriptoraSynCustomMarker
pour qu'elle soit reconnue en tant que commande personnalisée. Les valeurs des paramètres de commandetarget
etvalue
doivent être la valeur de la dimension CustomMarker et de l'opération respectivement..side
:{ “id”: “36d45a35-5c07-4d86-8144-90ee7b52260b”, “comment”: “”, “command”: “oraSynCustomMarker”, “target”: “Add Marker Name”, “targets”: [], “value”: “setValue” }
Voici un exemple :
{ “id”: “36d45a35-5c07-4d86-8144-90ee7b52260b”, “comment”: “For calling Availability Monitoring custom metrics”, “command”: “oraSynCustomMarker”, “target”: “DURATION: Check Elements”, “targets”: [], “value”: “setValue” }
- Script JS :
Ajoutez la commande suivante :
oraSynCustomMarker(customMarker, customOperation)
RemplacezcustomMarker
par la valeur de la dimension CustomMarker etCustomOperation
par l'opération à effectuer sur la dimension. Voici un exemple :oraSynCustomMarker("DURATION: Check Elements", "setValue")
- Scénario de dramaturge :
Utilisez le format suivant :
console.log("oraSynCustomMarker:setValue:SetMarker"); // capturing the marker from the starting of the script console.log("oraSynCustomMarker:startTime:PageDuration"); // setting the starting marker console.log("oraSynCustomMarker:endTime:PageDuration"); // setting the end marker of the respective starting marker
Vous pouvez également créer des alarmes dans le service de surveillance à l'aide de CustomMetric et de la dimension CustomMarker à aviser lorsque la mesure rencontre des déclencheurs spécifiés par une alarme. Pour plus d'informations sur la fonction d'alarmes et leur création, voir Gestion des alarmes.
Ajouter des captures d'écran personnalisées
Vous pouvez ajouter une commande aux scripts .side
et .ts
pour saisir des captures d'écran personnalisées. Cette fonctionnalité vous permet de prendre des captures d'écran à tout moment pendant l'exécution du script pour diagnostiquer les problèmes. Vous pouvez prendre un maximum de dix captures d'écran personnalisées en plus des captures d'écran standard.
- Script latéral :
{ "id": "e227f32f-47f6-432b-976a-6b5db5b53e94", "comment": "", "command": "oraSynCustomScreenshot", "target": "AddScreenshotName", "targets": [], "value": "true" }
- Scénario de dramaturge :
console.log("oraSynCustomScreenshot:<fileName>")
Utiliser l'authentification multifacteur
Les transactions de surveillance de la disponibilité prennent en charge l'authentification multifacteur qui génère un jeton de mot de passe à usage unique basé sur le temps (TOTP) doté de la clé secrète d'authentification. Pour la génération de ce TOTP, vous devez fournir la clé secrète lors de la création du moniteur.
oraSynTimeBasedOTP
, puis entrer la variable ${oraSynTimeBasedOTP}
où la valeur TOTP doit être utilisée :
- Script latéral :
{ "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "oraSynTimeBasedOTP", "target": "1ABCDE1A1XTXVOIDQRZP1ZXTZAUDLIBJZ", "targets": [], "value": "" } // After providing the command, user needs to provide the variable. { "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "type", "target": "id=mfa_token", "targets": [ ["id=mfa_token", "id"], ["name=mfa_token", "name"], ["css=#mfa_token", "css:finder"], ["xpath=//input[@id='mfa_token']", "xpath:attributes"], ["xpath=//div[@id='root']/div[3]/div/div[2]/form/div/div/input", "xpath:idRelative"], ["xpath=//div/input", "xpath:position"] ], "value": "${oraSynTimeBasedOTP}" }
La commande de génération du TOTP estoraSynTimeBasedOTP
. Cette commande accepte la clé secrète requise pour générer le TOTP. La clé secrète doit être transmise en tant que cible. Il peut être transmis en tant que variable normale ou variable sensible :-
Paramètre normal :
{ "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "oraSynTimeBasedOTP", "target": "1ABCDE1A1XTXVOIDQRZP1ZXTZAUDLIBJZ", "targets": [], "value": "" }
-
Paramètre de mot de passe sensible ou similaire :
{ "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "oraSynTimeBasedOTP", "target": "<ORAP><ON>MFA_Secret</ON><OV>1ABCDE1A1XTXVOIDQRZP1ZXTZAUDLIBJZ</OV><OS>true</OS></ORAP>", "targets": [], "value": "" }
{ "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "type", "target": "id=mfa_token", "targets": [ ["id=mfa_token", "id"], ["name=mfa_token", "name"], ["css=#mfa_token", "css:finder"], ["xpath=//input[@id='mfa_token']", "xpath:attributes"], ["xpath=//div[@id='root']/div[3]/div/div[2]/form/div/div/input", "xpath:idRelative"], ["xpath=//div/input", "xpath:position"] ], "value": "${oraSynTimeBasedOTP}" }
Vous devez indiquer où le TOTP (qui est généré ) doit être utilisé. Généralement, TOTP sera entré en tant que valeur dans le champ d'entrée de texte TOTP respectif. TOTP serait stocké dans le nom de variable
${oraSynTimeBasedOTP}
. Vous devez indiquer le nom de variable${oraSynTimeBasedOTP}
où la valeur TOTP sera entrée. -
-
Scénario de dramaturge :
La commande pour générer le TOTP estoraSynTimeBasedOTP
. Cette commande accepte la clé secrète requise pour générer le TOTP.console.log("oraSynTimeBasedOTP:<value>")
Exemple :
var oraSynTimeBasedOTP = ''; // Mandatory to define. This variable holds the TOTP value. console.log('oraSynTimeBasedOTP:1ABCDE1A1XTXVOIDQRZP1ZXTZAUDLIBJZ'); // This is normal parameter format to provide the MFA secret. await page.getByRole('textbox', { name: 'Enter One Time Passcode'}).fill(oraSynTimeBasedOTP); // Here the TOTP value will be utilized to fill in the TOTP text input field.
Utilisation des clés secrètes de chambre forte
Actuellement, l'authentification des clés secrètes de chambre forte dans les points d'observation publics et les points d'observation dédiés est effectuée à l'aide de S2S et des principaux d'instance, respectivement. S2S et le principal d'instance ne peuvent pas être utilisés dans les points d'observation sur place.
Pour les points d'observation sur place, vous devez utiliser le principal de ressource. Une fois le mot clé RESOURCE_PRINCIPAL
ajouté au script, le principal de ressource sera utilisé pour authentifier les clés secrètes de chambre forte. Cela fonctionne dans toutes sortes de points d'observation. Pour plus d'informations, voir Utilisation de clés secrètes de chambre forte avec des principaux de ressource.
.side
, .ts
ou .js
qui seront résolues lors de l'exécution. Cela vous permet de mettre à jour dynamiquement des variables telles que les noms d'utilisateur et les mots de passe, sans mettre à jour les scripts ni redémarrer les moniteurs. Créez simplement des clés secrètes dans la chambre forte et utilisez-les dans des scripts qui seront résolus lors de l'exécution du moniteur en définissant les politiques suivantes dans votre client :
-
Politique relative aux points d'observation publics
Vous pouvez définir des politiques pour le service APM afin d'accéder aux clés secrètes dans une chambre forte ou un compartiment spécifique :
- Une chambre forte spécifique :
Allow service applicationperformancemonitoring to read secret-family in compartment <compartment-name> where all {target.vault.id=‘ocid1.vault.oc1.<vault-ocid>’ , any {target.vaultsecret.id=‘ocid1.vaultsecret.oc1.phx.<secret-ocid1>, target.vaultsecret.id=‘ocid1.vaultsecret.oc1.phx.<secret-ocid2>}}
-
Un compartiment spécifique, utilisant le nom du compartiment :
Allow service applicationperformancemonitoring to read secret-family in compartment <compartment-name>
Un compartiment spécifique, à l'aide de l'ID du compartiment :
Allow service applicationperformancemonitoring to read secret-family in compartment id <compartment-ocid>
- Une chambre forte spécifique :
-
Politique sur les points d'observation dédiés
Vous pouvez définir des politiques pour que le service APM accède aux clés secrètes d'un compartiment à l'aide du nom ou de l'ID du compartiment :
-
Un compartiment spécifique, utilisant le nom du compartiment :
Allow dynamic-group <dvp dynamic group eg stack-11-aug-apmSyntheticDVP-dg> read secret-family in compartment <compartment-name>
-
Un compartiment spécifique, à l'aide de l'ID du compartiment :
Allow dynamic-group <dvp dynamic group eg stack-11-aug-apmSyntheticDVP-dg> read secret-family in compartment id <compartment-ocid>
-
-
Selon le type de script, utilisez la syntaxe suivante :
-
Pour le script
.side
, utilisez la syntaxe suivante :<ORAS>secretOcid</ORAS><ORASREG>vaultRegion</ORASREG>
Par exemple :
<ORAS>ocid1.vaultsecret.oc1.phx.abcdefghijklmnopqrstuvwxyz123456789</ORAS><ORASREG>us-phoenix-1</ORASREG>
-
Pour le script
.ts
, utilisez la syntaxe suivante :var password = "<ORAS>ocid1.vault.oc1.vault-ocid</ORAS><ORASREG>vaultRegion</ORASREG>" await page.getByRole('textbox', { name: 'password' }).fill(password);
-
Pour le script
.js
, utilisez la syntaxe suivante :method: 'GET', url:'<ORAS>secretOcid</ORAS><ORASREG>vaultRegion</ORASREG>'
Par exemple :
method: 'GET', url:'<ORAS>ocid1.vaultsecret.oc1.phx.abcdefghijklmnopqrstuvwxyz123456789</ORAS><ORASREG>us-phoenix-1</ORASREG>'
Cette opération
secretOcid
sera résolue lors de l'exécution pour extraire les valeurs de clé secrète courantes.La syntaxe
<ORASREG>
est facultative. Il peut être utilisé lorsque votre service de chambre forte se trouve dans une autre région que les moniteurs. Vous pouvez utiliservaultRegion
pour spécifier la région dans laquelle se trouve votre chambre forte et les clés secrètes seront résolues à partir de celle-ci. Cela permet d'utiliser le même script entre les régions. Notez qu'un seul élément<ORASREG>region</ORASREG>
doit être présent dans le script.Note
La longueur maximale de la valeur de clé secrète est255
. -
Utiliser des clés secrètes de chambre forte avec des principaux de ressource
Vous pouvez mettre à jour le script pour utiliser des clés secrètes de chambre forte avec les principaux de ressource.
La prise en charge basée sur le principal de ressource est ajoutée pour accéder aux clés secrètes de chambre forte. Des politiques basées sur le principal de ressource peuvent être ajoutées pour permettre aux moniteurs Rest, Siderunner et Playwright d'accéder aux clés secrètes du service de chambre forte.
- Créez un groupe dynamique sur le type de ressource de surveillance.
Ajoutez l'une des règles suivantes pour permettre à toutes les ressources de surveillance du type de ressource
apmsyntheticmonitor
d'accéder aux clés secrètes du service de chambre forte :- Option 1 :
All {resource.type='apmsyntheticmonitor'}
Utilisez cette option si vous disposez d'une seule ressource (par exemple, un seul moniteur).
- Option 2 :
ANY {resource.type='apmsyntheticmonitor'}
Utilisez cette option si vous avez une seule ressource (telle qu'un seul moniteur) ou si vous avez plusieurs ressources (telles que le domaine APM et d'autres).
- Option 1 :
- Ajoutez une politique pour autoriser l'accès aux chambres fortes à l'aide des principaux de ressource :
Allow dynamic-group <vault dg> to read to secret-family in compartment <compartment-name>
Facultatif : Pour l'accès aux clés secrètes de chambre forte interlocation, procédez de la façon suivante :
- Ajoutez des politiques à la location de domaine APM :
DEFINE tenancy vault_tenancy as <ocid_of_vault_tenancy> ENDORSE dynamic-group apm_domain_tenancy_dynamic_group to read secret-family in tenancy vault_tenancy
- Ajoutez des politiques à la location de la chambre forte :
DEFINE tenancy apm_domain_tenancy as <ocid_of_apm_domain_tenancy> DEFINE dynamic-group apm_domain_tenancy_dynamic_group as <ocid_of_apm_domain_tenancy_dynamic_group> ADMIT dynamic-group apm_domain_tenancy_dynamic_group of tenancy apm_domain_tenancy to read secret-family in compartment <vault_compartment_name>
Pour plus d'informations sur les énoncés
DEFINE
,ENDORSE
etADMIT
, voir Documentation sur le stockage d'objets. - Ajoutez des politiques à la location de domaine APM :
- Ajoutez des paramètres de chambre forte dans le script avec le mot clé
RESOURCE_PRINCIPAL
Indiquez la syntaxe d'approbation dans le scriptjs
,side
ouplaywright
. Avec l'OCID et la région de la clé secrète de la chambre forte, un mot cléRESOURCE_PRINCIPAL
doit être transmis.Note
Elle ne doit être ajoutée que dans l'un des paramètres de chambre forte.Exemple latéral :
Pour le côté, le script ressemble à l'exemple suivant :
"command": "<ORAS>ocid1.vaultsecret.oc1.phx.amaaaaaatttttuuuuaa</ORAS><ORASREG>us-phoenix-1</ORASREG><ORASAUTH>RESOURCE_PRINCIPAL</ORASAUTH>",
Exemple de dramaturge :
Pour le dramaturge, le script ressemble à l'exemple suivant :var password = "<ORAS>ocid1.vault.oc1.vault-ocid</ORAS><ORASREG>vaultRegion</ORASREG><ORASAUTH>RESOURCE_PRINCIPAL</ORASAUTH>" await page.getByRole('textbox', { name: 'password' }).fill(password);
Pour plus d'informations, voir Utilisation de clés secrètes de chambre forte.
Exemple JS :
Pour le moniteur SCRIPTED_REST, utilisez le mot clé
RESOURCE_PRINCIPAL
dans le script.Par exemple, consultez le script
.js
suivant :var request = require('postman-request'); var options = { method: '<ORAS>ocid1.vaultsecret.oc1.phx.amaaaaaafpqv5yya7p2uv63scv37yz64u75x47ajuibwoynro3ygbu2rrtxa</ORAS>', url: '<ORAS>ocid1.vaultsecret.oc1.phx.amaaaaaafpqv5yyagfnrwsjmoabretgffs4nkfocrfokvnldtt7nee7htsya</ORAS><ORASREG>us-phoenix-1</ORASREG><ORASAUTH>RESOURCE_PRINCIPAL</ORASAUTH>' }; request(options, function (error, response, body) { if (error) throw new Error(error); console.log(response.statusCode); });