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à.
Funzioni di libreria disponibili per gli script canary Python che usano Selenium
Questa sezione elenca le funzioni di libreria di Selenium disponibili per gli script canary Python.
Argomenti
Classi e funzioni della libreria Python e Selenium che si applicano a tutti i canary
Le seguenti funzioni della libreria CloudWatch Synthetics Selenium per Python sono utili per tutti i canarini.
SyntheticsConfiguration classe
È possibile utilizzare la SyntheticsConfiguration classe per configurare il comportamento delle funzioni della libreria Synthetics. Ad esempio, puoi utilizzare questa classe per configurare la funzione executeStep()
per non acquisire screenshot.
È possibile impostare le configurazioni CloudWatch Synthetics a livello globale.
Definizioni della funzione:
set_config(options)
from aws_synthetics.common import synthetics_configuration
è un oggetto, che è un insieme di opzioni configurabili per il tuo canary. Le seguenti sezioni spiegano i campi possibili in options
.options
screenshot_on_step_start
(booleano): indica se fare uno screenshot prima di iniziare una fase.screenshot_on_step_success
(booleano): indica se acquisire uno screenshot dopo aver completato una fase riuscita.screenshot_on_step_failure
(booleano): indica se acquisire uno screenshot dopo il fallimento di una fase.
with_screenshot_on_step_start(screenshot_on_step_start)
Accetta un argomento booleano, che indica se eseguire uno screenshot prima di iniziare una fase.
with_screenshot_on_step_success(screenshot_on_step_success)
Accetta un argomento booleano, che indica se acquisire uno screenshot dopo aver completato correttamente una fase.
with_screenshot_on_step_failure(screenshot_on_step_failure)
Accetta un argomento booleano, che indica se acquisire uno screenshot dopo il fallimento di una fase.
get_screenshot_on_step_start()
Restituisce se acquisire uno screenshot prima di iniziare una fase.
get_screenshot_on_step_success()
Restituisce se acquisire uno screenshot dopo aver completato correttamente una fase.
get_screenshot_on_step_failure()
Restituisce se acquisire uno screenshot dopo che una fase fallisce.
disable_step_screenshots()
Disabilita tutte le opzioni di screenshot (get_screenshot_on_step_start, get_screenshot_on_step_success e get_screenshot_on_step_failure).
enable_step_screenshots()
Abilita tutte le opzioni di screenshot (get_screenshot_on_step_start, get_screenshot_on_step_success e get_screenshot_on_step_failure). Per impostazione predefinita, tutti questi metodi sono abilitati.
setConfig(opzioni) relative alle metriche CloudWatch
Per i canarini che utilizzano syn-python-selenium-1.1
o versioni successive, il (options) for setConfigpuò includere i seguenti parametri booleani che determinano quali metriche vengono pubblicate dal canarino. Il valore predefinito per ciascuna di queste opzioni è true
. Le opzioni che iniziano con aggregated
determinano se il parametro viene emesso senza destinazione CanaryName
. Puoi usare questi parametri per visualizzare i risultati aggregati per tutti i canary. Le altre opzioni determinano se il parametro viene emesso con la dimensione CanaryName
. Puoi usare questi parametri per visualizzare i risultati per ogni singolo canary.
Per un elenco delle CloudWatch metriche emesse dai canarini, vedi. CloudWatch metriche pubblicate da canaries
failed_canary_metric
(booleano): indica se emettere il parametroFailed
(con la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.failed_requests_metric
(booleano): indica se emettere il parametroFailed requests
(con la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.2xx_metric
(booleano): indica se emettere il parametro2xx
(con la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.4xx_metric
(booleano): indica se emettere il parametro4xx
(con la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.5xx_metric
(booleano): indica se emettere il parametro5xx
(con la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.step_duration_metric
(booleano): indica se emettere il parametroStep duration
(con le dimensioniCanaryName
StepName
) per questo canary. Il valore predefinito ètrue
.step_success_metric
(booleano): indica se emettere il parametroStep success
(con le dimensioniCanaryName
StepName
) per questo canary. Il valore predefinito ètrue
.aggregated_failed_canary_metric
(booleano): indica se emettere il parametroFailed
(senza la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.aggregated_failed_requests_metric
(booleano): indica se emettere il parametroFailed Requests
(senza la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.aggregated_2xx_metric
(booleano): indica se emettere il parametro2xx
(senza la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.aggregated_4xx_metric
(booleano): indica se emettere il parametro4xx
(senza la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.aggregated_5xx_metric
(booleano): indica se emettere il parametro5xx
(senza la dimensioneCanaryName
) per questo canary. Il valore predefinito ètrue
.
with_2xx_metric(2xx_metric)
Accetta un argomento booleano, che specifica se emettere un parametro 2xx
con dimensione CanaryName
per questo canary.
with_4xx_metric(4xx_metric)
Accetta un argomento booleano, che specifica se emettere un parametro 4xx
con dimensione CanaryName
per questo canary.
with_5xx_metric(5xx_metric)
Accetta un argomento booleano, che specifica se emettere un parametro 5xx
con dimensione CanaryName
per questo canary.
withAggregated2 (aggregato 2) xxMetric xxMetric
Accetta un argomento booleano, che specifica se emettere un parametro 2xx
senza alcuna dimensione per questo canary.
withAggregated4 xxMetric (aggregato 4) xxMetric
Accetta un argomento booleano, che specifica se emettere un parametro 4xx
senza alcuna dimensione per questo canary.
with_aggregated_5xx_metric(aggregated_5xx_metric)
Accetta un argomento booleano, che specifica se emettere un parametro 5xx
senza alcuna dimensione per questo canary.
with_aggregated_failed_canary_metric(aggregated_failed_canary_metric)
Accetta un argomento booleano, che specifica se emettere un parametro Failed
senza alcuna dimensione per questo canary.
with_aggregated_failed_requests_metric(aggregated_failed_requests_metric)
Accetta un argomento booleano, che specifica se emettere un parametro Failed
requests
senza alcuna dimensione per questo canary.
with_failed_canary_metric(failed_canary_metric)
Accetta un argomento booleano, che specifica se emettere un parametro Failed
con dimensione CanaryName
per questo canary.
with_failed_requests_metric(failed_requests_metric)
Accetta un argomento booleano, che specifica se emettere un parametro Failed
requests
con dimensione CanaryName
per questo canary.
with_step_duration_metric(step_duration_metric)
Accetta un argomento booleano, che specifica se emettere un parametro Duration
con dimensione CanaryName
per questo canary.
with_step_success_metric(step_success_metric)
Accetta un argomento booleano, che specifica se emettere un parametro StepSuccess
con dimensione CanaryName
per questo canary.
Metodi per abilitare o disabilitare i parametri
disable_aggregated_request_metrics()
Disabilita il canary dall'emettere tutti i parametri delle richieste emessi senza dimensione CanaryName
.
disable_request_metrics()
Disabilita tutti i parametri delle richieste, inclusi i parametri dei canary e i parametri aggregati in tutti i canary.
disable_step_metrics()
Disabilita tutti i parametri dei passaggi, inclusi sia quelli di riuscita che di durata.
enable_aggregated_request_metrics()
Consente al canary di emettere tutti i parametri della richiesta emessi senza la dimensione CanaryName
.
enable_request_metrics()
Abilita tutti i parametri delle richieste, inclusi i parametri dei canary e i parametri aggregati in tutti i canary.
enable_step_metrics()
Abilita tutti i parametri dei passaggi, inclusi sia quelli di riuscita che di durata.
Utilizzo in canary dell'interfaccia utente
Innanzitutto, importa la dipendenza di Synthetics e recupera la configurazione. Quindi, imposta la configurazione per ogni opzione chiamando il setConfig metodo utilizzando una delle seguenti opzioni.
from aws_synthetics.common import synthetics_configuration synthetics_configuration.set_config( { "screenshot_on_step_start": False, "screenshot_on_step_success": False, "screenshot_on_step_failure": True } ) or
Or
synthetics_configuration.with_screenshot_on_step_start(False).with_screenshot_on_step_success(False).with_screenshot_on_step_failure(True)
Per disabilitare tutte le schermate, utilizzate la funzione disableStepScreenshots () come in questo esempio.
synthetics_configuration.disable_step_screenshots()
Puoi abilitare e disabilitare gli screenshot in qualsiasi punto del codice. Ad esempio, per disabilitare gli screenshot solo per una fase, disattivali prima di eseguire tale fase e quindi attivali dopo la fase.
set_config(options) per canary dell'interfaccia utente
A partire da syn-python-selenium-1.1
, per i canary dell'interfaccia utente, set_config
può includere i seguenti parametri booleani:
continue_on_step_failure
(boolean) — Se continuare a eseguire lo script canary dopo un passaggio fallito (si riferisce alla funzione). executeStep Se le fasi hanno esito negativo, l'esecuzione del canary verrà comunque contrassegnata come fallita. Il valore predefinito èfalse
.
SyntheticsLogger classe
synthetics_logger
scrive i log sia nella console che in un file di log locale allo stesso livello di log. Questo file di log viene scritto in entrambe le posizioni solo se il livello di log è pari o inferiore al livello di registrazione desiderato della funzione di log chiamata.
Le istruzioni di registrazione nel file di registro locale sono precedute da "DEBUG: «,"INFO: «e così via in modo che corrispondano al livello di registro della funzione chiamata.
L'utilizzo di synthetics_logger
non è necessario per creare un file di log che viene caricato nel percorso dei risultati di Amazon S3. Puoi invece creare un file di log diverso nella cartella /tmp
. Tutti i file creati nella cartella /tmp
vengono caricati nella posizione dei risultati nel bucket S3 come artefatti.
Per utilizzare synthetics_logger
:
from aws_synthetics.common import synthetics_logger
Definizioni utili delle funzioni:
Ottenere il livello di log:
log_level = synthetics_logger.get_level()
Impostare il livello di log:
synthetics_logger.set_level()
Registrare un messaggio con un livello specificato. Il livello può essere DEBUG
, INFO
, WARN
oppure ERROR
, come negli esempi di sintassi seguenti:
synthetics_logger.debug(message, *args, **kwargs)
synthetics_logger.info(message, *args, **kwargs)
synthetics_logger.log(message, *args, **kwargs)
synthetics_logger.warn(message, *args, **kwargs)
synthetics_logger.error(message, *args, **kwargs)
Per informazioni sui parametri di debug, consulta la documentazione standard di Python all'indirizzo logging.debug
In queste funzioni di registrazione, message
è la stringa di formato del messaggio. args
sono gli argomenti che vengono uniti in msg
utilizzando l'operatore di formattazione delle stringhe.
Ci sono tre argomenti della parola chiave in kwargs
:
exc_info
: se non viene valutato come false (falso), aggiunge informazioni sulle eccezioni al messaggio di log.stack_info
: imposta il valore predefinito su false (falso). Se true (vero), aggiunge le informazioni sullo stack al messaggio di log, inclusa la chiamata di registrazione effettiva.extra
: il terzo argomento della parola chiave facoltativo, che puoi utilizzare per il passaggio a un dizionario utilizzato per popolare il__dict__
diLogRecord
creato per l'evento di log con attributi definiti dall'utente.
Esempi:
Registrare un messaggio con il livello DEBUG
:
synthetics_logger.debug('Starting step - login.')
Registrare un messaggio con il livello INFO
. logger.log
è sinonimo di logger.info
:
synthetics_logger.info('Successfully completed step - login.')
oppure
synthetics_logger.log('Successfully completed step - login.')
Registrare un messaggio con il livello WARN
:
synthetics_logger.warn('Warning encountered trying to publish %s', 'CloudWatch Metric')
Registrare un messaggio con il livello ERROR
:
synthetics_logger.error('Error encountered trying to publish %s', 'CloudWatch Metric')
Registrare un'eccezione:
synthetics_logger.exception(message, *args, **kwargs)
Registra un messaggio con il livello ERROR
. Le informazioni sulle eccezioni vengono aggiunte al messaggio di log. Dovresti chiamare questa funzione solo da un gestore di eccezioni.
Per informazioni sui parametri di eccezione, consulta la documentazione standard di Python all'indirizzo logging.exception
message
è la stringa di formato del messaggio. args
sono gli argomenti che vengono uniti in msg
utilizzando l'operatore di formattazione delle stringhe.
Ci sono tre argomenti della parola chiave in kwargs
:
exc_info
: se non viene valutato come false (falso), aggiunge informazioni sulle eccezioni al messaggio di log.stack_info
: imposta il valore predefinito su false (falso). Se true (vero), aggiunge le informazioni sullo stack al messaggio di log, inclusa la chiamata di registrazione effettiva.extra
: il terzo argomento della parola chiave facoltativo, che puoi utilizzare per il passaggio a un dizionario utilizzato per popolare il__dict__
diLogRecord
creato per l'evento di registrazione con attributi definiti dall'utente.
Esempio:
synthetics_logger.exception('Error encountered trying to publish %s', 'CloudWatch Metric')
Classi e funzioni della libreria Python e Selenium che si applicano solo ai canary dell'interfaccia utente
Le seguenti funzioni della libreria CloudWatch Synthetics Selenium per Python sono utili solo per i canari dell'interfaccia utente.
SyntheticsBrowser classe
Quando crei un'istanza del browser chiamando synthetics_webdriver.Chrome()
, l'istanza del browser restituita è del tipo SyntheticsBrowser
. La SyntheticsBrowser
classe controlla e abilita lo script canary per guidare il browser, permettendo a Selenium di funzionare con WebDriver Synthetics. ChromeDriver
Oltre ai metodi standard di Selenium, offre anche i seguenti metodi.
set_viewport_size(width, height)
Imposta l'area di visualizzazione del browser. Esempio:
browser.set_viewport_size(1920, 1080)
save_screenshot(filename, suffix)
Salva gli screenshot nella directory /tmp
. Gli screenshot vengono caricati da lì nella cartella degli artefatti del canary nel bucket S3.
filename è il nome del file per lo screenshot, e suffix è una stringa opzionale da utilizzare per nominare lo screenshot.
Esempio:
browser.save_screenshot('loaded.png', 'page1')
SyntheticsWebDriver classe
Per utilizzare questa classe, utilizza i seguenti elementi nello script:
from aws_synthetics.selenium import synthetics_webdriver
add_execution_error (, ex); errorMessage
errorMessage
descrive l'errore e ex
è l'eccezione che si verifica
Puoi utilizzare add_execution_error
per impostare gli errori di esecuzione per il tuo canary. Fa fallire il canary senza interrompere l'esecuzione dello script. Inoltre, non influisce sui tuoi parametri successPercent
.
È necessario tenere traccia degli errori come errori di esecuzione solo se non sono importanti per indicare il successo o il fallimento dello script canary.
Di seguito è illustrato un esempio dell'uso dell'elemento add_execution_error
. Stai monitorando la disponibilità del tuo endpoint e acquisendo screenshot dopo che la pagina è stata caricata. Poiché l'errore di acquisizione di uno screenshot non determina la disponibilità dell'endpoint, puoi rilevare eventuali errori riscontrati durante l'acquisizione di screenshot e aggiungerli come errori di esecuzione. I parametri di disponibilità indicheranno comunque che l'endpoint è attivo e funzionante, ma lo stato del canary verrà contrassegnato come non riuscito. Il seguente blocco di codice di esempio rileva tale errore e lo aggiunge come errore di esecuzione.
try: browser.save_screenshot("loaded.png") except Exception as ex: self.add_execution_error("Unable to take screenshot", ex)
add_user_agent(user_agent_str)
Aggiunge il valore di user_agent_str
all'intestazione dell'agente utente del browser. È necessario assegnare user_agent_str
prima di creare l'istanza del browser.
Esempio:
synthetics_webdriver.add_user_agent('MyApp-1.0')
execute_step(step_name, function_to_execute)
Elabora una funzione. Inoltre esegue le seguenti operazioni:
Registra che il passaggio è iniziato.
Acquisisce uno screenshot denominato
<stepName>-starting
.Avvia un timer.
Esegue la funzione fornita.
Se la funzione viene restituita normalmente, conta come passaggio. Se la funzione genera, conta come errore.
Termina il timer.
Registra se il passaggio è riuscito o non è riuscito
Prende uno screenshot chiamato
<stepName>-succeeded
o<stepName>-failed
.Emette la metrica
stepName
SuccessPercent
, 100 per passato o 0 per errore.Genera il parametro
stepName
Duration
con un valore basato sull'ora di inizio e di fine del passaggio.Infine, restituisce ciò che il
functionToExecute
ha restituito o rigenera ciò chefunctionToExecute
ha generato.
Esempio:
from selenium.webdriver.common.by import By def custom_actions(): #verify contains browser.find_element(By.XPATH, "//*[@id=\"id_1\"][contains(text(),'login')]") #click a button browser.find_element(By.XPATH, '//*[@id="submit"]/a').click() await synthetics_webdriver.execute_step("verify_click", custom_actions)
Chrome()
Avvia un'istanza del browser Chromium e restituisce l'istanza creata del browser.
Esempio:
browser = synthetics_webdriver.Chrome() browser.get("https://example.com/)
Per avviare un browser in modalità di navigazione in incognito, utilizza quanto segue:
add_argument('——incognito')
Per aggiungere impostazioni proxy, utilizza quanto segue:
add_argument('--proxy-server=%s' %
PROXY
)
Esempio:
from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("——incognito") browser = syn_webdriver.Chrome(chrome_options=chrome_options)