Crea uno script
Per utilizzare la funzione Monitoraggio disponibilità per i tipi di monitoraggio REST con browser con script e con script, è innanzitutto necessario creare e caricare uno script, ovvero un percorso utente registrato utilizzato per simulare le transazioni utente nell'applicazione.
Lo script deve essere registrato nei seguenti tipi di file in base al tipo di monitoraggio che si desidera creare utilizzando lo script:
- File
.side
applicabile solo al tipo di monitoraggio Browser con script. Il file.side
viene creato utilizzando il registratore IDE (Selenium Integrated Development Environment). Per informazioni sui comandi Selenium e su come esportare un file.side
, vedere Documentazione Selenium. Tenere presente che è possibile caricare un solo script in Application Performance Monitoring. Il caricamento di una suite di test non è supportato. - File
.ts
applicabile solo al tipo di monitoraggio Browser con script. È possibile utilizzare.ts
TypeScript quando si lavora con Playwright. Per informazioni su Playwright, vedere https://playwright.dev/docs/intro. - Il file
.js
è applicabile solo al tipo di monitoraggio REST con script. Il file.js
può essere creato utilizzando il pacchettopostman-request
. Per informazioni sul pacchettopostman-request
, vedere postman-request.
Per caricare lo script in Application Performance Monitoring:
È inoltre possibile utilizzare le opzioni disponibili nella parte superiore della pagina per eseguire le azioni riportate di seguito nello script.
- Modifica: fare clic per modificare lo script. Si noti che se un monitor utilizza questo script, la modifica dello script potrebbe generare parametri incompatibili e sarà necessario apportare le modifiche corrispondenti anche al monitor.
- Visualizza: fare clic per visualizzare lo script.
- Scarica: fare clic per scaricare il file script (
.side
,.playwright
o.js
). - Aggiungi tag: fare clic per aggiungere tag allo script.
- Elimina: fare clic per eliminare lo script. Tenere presente che se un monitoraggio utilizza questo script, non è possibile eliminarlo.
Nella parte inferiore della pagina è possibile visualizzare la lista dei monitoraggi utilizzando lo script oppure fare clic su Crea monitoraggio per creare un monitoraggio con script. Per informazioni, vedere Creare un monitoraggio.
Opzioni avanzate per l'aggiornamento degli script
Gli script in Monitoraggio disponibilità consentono di registrare i percorsi utente e simulare le transazioni utente in un'applicazione.
È possibile aggiornare lo script con comandi personalizzati per eseguire determinate attività e nelle sezioni seguenti vengono descritti in dettaglio alcuni dei comandi che è possibile aggiungere allo script.
Si consiglia di utilizzare sempre uno script originale e di caricarlo e convalidarlo in un monitoraggio con script eseguito in Application Performance Monitoring, prima di modificarlo e apportare modifiche. L'aggiornamento dello script con contenuto personalizzato, ad esempio le variabili, può interferire con l'esecuzione dello script dalla distribuzione locale di IDE Selenium.
Aggiungi variabili personalizzate
È possibile aggiungere variabili personalizzate ai contenuti degli script .side
e .js
, che possono essere utilizzati per definire i parametri dinamici. Ciò consente di controllare questi parametri dallo script o dal monitoraggio in Application Performance Monitoring. Ad esempio, se si prevede la modifica di un nome utente o di un nome di selezione elemento o se si desidera rendere segreto tale valore in modo che gli altri utenti che hanno accesso al monitoraggio non possano visualizzare il valore, è possibile utilizzare variabili personalizzate.
param name
è obbligatorio, ma param value
e isParamValueSecret
sono facoltativi. Il valore predefinito per isParamValueSecret
è false
. Vedere i formati riportati di seguito.
-
Formato lato e JS:
<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>
-
Formato Playwright:
console.log("<ORAP><ON>param name</ON><OV>param value</OV><OS>isParamValueSecret(true/false)</OS></ORAP>");
Aggiungi indicatori personalizzati
È possibile aggiungere comandi indicatore personalizzati ai contenuti degli script .side
e .js
, che possono essere utilizzati per passare un messaggio personalizzato e la durata dallo script a Metrics Explorer nel servizio di monitoraggio. Ciò consente di passare una dimensione CustomMarker, ad esempio "DURATION: Check Elements" e l'operazione, ad esempio setValue
, al servizio di monitoraggio. La dimensione CustomMarker è disponibile con la metrica CustomMetric e utilizzando questa dimensione è possibile aggiungere allo script le operazioni seguenti come indicatori di durata per i passi transazione, ad esempio la durata del tempo tra il login e il caricamento della pagina completa:
setValue
: registra la durata tra l'ora di inizio dello script e l'ora di chiamata dell'operazione.startTime
: registra la durata tra questa operazione e l'operazioneendTime
.endTime
: registra la durata dell'intervallo di tempo tra l'operazionestartTime
e questa operazione.
Si noti che le operazioni startTime
e endTime
funzionano insieme. Per un valore CustomMarker contenente le operazioni startTime
e endTime
, il valore della metrica è <endTime - startTime>
.
Di seguito sono riportati i comandi e gli esempi della dimensione e delle operazioni CustomMarker.
- Script laterale:
Aggiungere i blocchi di comando con l'operazione che si desidera eseguire. Il valore del comando deve essere
Di seguito è riportato il comando utilizzato per acquisire un indicatore personalizzato in uno scriptoraSynCustomMarker
per essere riconosciuto come comando personalizzato. I valori dei parametri di comandotarget
evalue
devono essere rispettivamente il valore della dimensione CustomMarker e dell'operazione..side
.{ “id”: “36d45a35-5c07-4d86-8144-90ee7b52260b”, “comment”: “”, “command”: “oraSynCustomMarker”, “target”: “Add Marker Name”, “targets”: [], “value”: “setValue” }
Di seguito viene fornito un esempio.
{ “id”: “36d45a35-5c07-4d86-8144-90ee7b52260b”, “comment”: “For calling Availability Monitoring custom metrics”, “command”: “oraSynCustomMarker”, “target”: “DURATION: Check Elements”, “targets”: [], “value”: “setValue” }
- Script Js:
Aggiungere il comando seguente:
oraSynCustomMarker(customMarker, customOperation)
SostituirecustomMarker
con il valore della dimensione CustomMarker eCustomOperation
con l'operazione da eseguire sulla dimensione. Di seguito viene fornito un esempio.oraSynCustomMarker("DURATION: Check Elements", "setValue")
- Scrittura di Playwright:
Utilizzare il formato riportato di seguito:
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
È inoltre possibile creare allarmi nel servizio di monitoraggio utilizzando CustomMetric e la dimensione CustomMarker a cui inviare una notifica quando la metrica soddisfa i trigger specificati dall'allarme. Per informazioni sulla funzione Allarmi e su come crearli, vedere Gestione degli allarmi.
Aggiungi screenshot personalizzati
È possibile aggiungere un comando agli script .side
e .ts
per acquisire screenshot personalizzati. Questa funzionalità consente di eseguire screenshot in qualsiasi momento durante l'esecuzione dello script per diagnosticare i problemi. Oltre agli screenshot standard, puoi eseguire al massimo dieci screenshot personalizzati.
- Script laterale:
{ "id": "e227f32f-47f6-432b-976a-6b5db5b53e94", "comment": "", "command": "oraSynCustomScreenshot", "target": "AddScreenshotName", "targets": [], "value": "true" }
- Scrittura di Playwright:
console.log("oraSynCustomScreenshot:<fileName>")
Usa autenticazione con più fattori (MFA)
Le transazioni di monitoraggio della disponibilità supportano l'autenticazione a più fattori (MFA) che genera un token TOTP (Time-Based One-Time Password) a cui viene assegnato il segreto di autenticazione. Per la generazione di questo TOTP è necessario fornire la chiave segreta durante la creazione del monitor.
oraSynTimeBasedOTP
, quindi immettere la variabile ${oraSynTimeBasedOTP}
in cui deve essere utilizzato il valore TOTP:
- Script laterale:
{ "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}" }
Il comando per generare il TOTP èoraSynTimeBasedOTP
. Questo comando accetta la chiave segreta richiesta per generare il TOTP. La chiave segreta deve essere passata come destinazione. Può essere passato come una variabile normale o una variabile sensibile:-
Parametro normale:
{ "id": "123abc12-12ab-1a12-1a2a-1234ab123abc", "comment": "", "command": "oraSynTimeBasedOTP", "target": "1ABCDE1A1XTXVOIDQRZP1ZXTZAUDLIBJZ", "targets": [], "value": "" }
-
Parametro riservato o simile alla password:
{ "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}" }
È necessario indicare dove utilizzare il TOTP (che viene generato). In genere, TOTP verrà immesso come valore nel rispettivo campo di input del testo TOTP. TOTP verrà memorizzato nel nome variabile
${oraSynTimeBasedOTP}
. È necessario specificare il nome della variabile come${oraSynTimeBasedOTP}
in cui verrà immesso il valore TOTP. -
-
Scrittura di Playwright:
Il comando per generare il TOTP èoraSynTimeBasedOTP
. Questo comando accetta la chiave segreta richiesta per generare il TOTP.console.log("oraSynTimeBasedOTP:<value>")
Esempio:
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.
Uso dei segreti vault
Al momento, l'autenticazione dei segreti vault nei punti di osservazione pubblici e nei punti di osservazione dedicati viene eseguita utilizzando rispettivamente S2S e i principal delle istanze. S2S e il principal dell'istanza non possono essere utilizzati nei punti di osservazione in locale.
Per i punti di osservazione in locale, è necessario utilizzare il principal delle risorse. Una volta aggiunta la parola chiave RESOURCE_PRINCIPAL
allo script, il nome principale della risorsa verrà utilizzato per l'autenticazione dei segreti del vault. Questo funziona in tutti i tipi di punti di osservazione. Per informazioni, vedere Utilizzo dei segreti vault con i principal delle risorse.
.side
, .ts
o .js
che verranno risolti in runtime. Ciò consente di aggiornare dinamicamente variabili come nomi utente e password, senza aggiornare gli script o riavviare i monitor. È sufficiente creare segreti nel vault e utilizzarli negli script che verranno risolti durante l'esecuzione del monitoraggio impostando i criteri seguenti nel tenant:
-
Criterio punti di osservazione pubblici
È possibile impostare i criteri per il servizio APM per accedere ai segreti in un vault o compartimento specifico:
- Un vault specifico:
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 compartimento specifico, utilizzando il nome del compartimento:
Allow service applicationperformancemonitoring to read secret-family in compartment <compartment-name>
Un compartimento specifico, utilizzando l'ID del compartimento:
Allow service applicationperformancemonitoring to read secret-family in compartment id <compartment-ocid>
- Un vault specifico:
-
Criterio dei punti di osservazione dedicati
È possibile impostare i criteri per il servizio APM per accedere ai segreti in un compartimento utilizzando il nome o l'ID del compartimento:
-
Un compartimento specifico, utilizzando il nome del compartimento:
Allow dynamic-group <dvp dynamic group eg stack-11-aug-apmSyntheticDVP-dg> read secret-family in compartment <compartment-name>
-
Un compartimento specifico, utilizzando l'ID del compartimento:
Allow dynamic-group <dvp dynamic group eg stack-11-aug-apmSyntheticDVP-dg> read secret-family in compartment id <compartment-ocid>
-
-
A seconda del tipo di script, utilizzare la seguente sintassi:
-
Per lo script
.side
, utilizzare la seguente sintassi:<ORAS>secretOcid</ORAS><ORASREG>vaultRegion</ORASREG>
Ad esempio:
<ORAS>ocid1.vaultsecret.oc1.phx.abcdefghijklmnopqrstuvwxyz123456789</ORAS><ORASREG>us-phoenix-1</ORASREG>
-
Per lo script
.ts
, utilizzare la seguente sintassi:var password = "<ORAS>ocid1.vault.oc1.vault-ocid</ORAS><ORASREG>vaultRegion</ORASREG>" await page.getByRole('textbox', { name: 'password' }).fill(password);
-
Per lo script
.js
, utilizzare la seguente sintassi:method: 'GET', url:'<ORAS>secretOcid</ORAS><ORASREG>vaultRegion</ORASREG>'
Ad esempio:
method: 'GET', url:'<ORAS>ocid1.vaultsecret.oc1.phx.abcdefghijklmnopqrstuvwxyz123456789</ORAS><ORASREG>us-phoenix-1</ORASREG>'
Questo valore
secretOcid
verrà risolto durante l'esecuzione per recuperare i valori segreti correnti.La sintassi
<ORASREG>
è facoltativa. Può essere utilizzato quando il servizio vault si trova in un'area diversa rispetto ai monitoraggi. È possibile utilizzarevaultRegion
per specificare in quale area si trova il vault e i segreti verranno risolti da tale area. Consente di utilizzare lo stesso script in tutte le aree. Lo script deve contenere un solo<ORASREG>region</ORASREG>
.Nota
La lunghezza massima per il valore segreto è255
. -
Uso dei segreti del vault con i principal risorsa
È possibile aggiornare lo script in modo che utilizzi i segreti del vault con i principal delle risorse.
Il supporto basato sul principal risorsa viene aggiunto per accedere ai segreti del vault. È possibile aggiungere criteri basati su principal risorsa per consentire ai monitoraggi Rest, Siderunner e Playwright di accedere ai segreti del vault.
- Creare un gruppo dinamico sul tipo di risorsa di monitoraggio.
Aggiungere una delle seguenti regole per consentire a tutte le risorse di monitoraggio del tipo di risorsa
apmsyntheticmonitor
di accedere ai segreti del vault:- Opzione 1:
All {resource.type='apmsyntheticmonitor'}
Utilizzare questa opzione se si dispone di una sola risorsa, ad esempio un singolo monitor.
- Opzione 2:
ANY {resource.type='apmsyntheticmonitor'}
Utilizzare questa opzione se si dispone di una singola risorsa (ad esempio un singolo monitoraggio) o se si dispone di più risorse (ad esempio, il dominio APM e altre).
- Opzione 1:
- Aggiungere un criterio per consentire l'accesso ai vault utilizzando i principal delle risorse:
Allow dynamic-group <vault dg> to read to secret-family in compartment <compartment-name>
Facoltativo: per l'accesso ai segreti vault tra tenancy, effettuare le operazioni riportate di seguito.
- Aggiungere criteri alla tenancy del dominio 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
- Aggiungere criteri alla tenancy del vault:
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>
Per informazioni sulle istruzioni
DEFINE
,ENDORSE
eADMIT
, vedere Documentazione sullo storage degli oggetti. - Aggiungere criteri alla tenancy del dominio APM:
- Aggiungere i parametri del vault nello script con la parola chiave
RESOURCE_PRINCIPAL
Fornire la sintassi appropriata nello scriptjs
,side
oplaywright
. Insieme all'OCID segreto del vault e all'area, è necessario passare una parola chiaveRESOURCE_PRINCIPAL
.Nota
Deve essere aggiunto solo in uno dei parametri Vault.Esempio secondario:
Per lato, lo script assomiglia al seguente esempio:
"command": "<ORAS>ocid1.vaultsecret.oc1.phx.amaaaaaatttttuuuuaa</ORAS><ORASREG>us-phoenix-1</ORASREG><ORASAUTH>RESOURCE_PRINCIPAL</ORASAUTH>",
Esempio di Playwright:
Per il drammaturgo, lo script è simile al seguente esempio:var password = "<ORAS>ocid1.vault.oc1.vault-ocid</ORAS><ORASREG>vaultRegion</ORASREG><ORASAUTH>RESOURCE_PRINCIPAL</ORASAUTH>" await page.getByRole('textbox', { name: 'password' }).fill(password);
Per ulteriori informazioni, vedere Utilizzo dei segreti vault.
Esempio JS:
Per il monitoraggio SCRIPTED_REST, usare la parola chiave
RESOURCE_PRINCIPAL
nello script.Ad esempio, vedere il seguente script
.js
: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); });