Lavori di Selenium con timer
Funzione | Questo plugin serve per eseguire test web utilizzando il framework Selenium. Esegue test basati su RobotFramework o Python su un browser chrome headless che si trova su un collettore, attende che l'esecuzione termini, quindi recupera i file di log generati e li visualizza in una pagina di riepilogo. |
---|---|
Allarmi | Tempo di esecuzione, Codice risposta, Codice risultato |
Informazioni generali sul lavoro di Selenium
I progetti Selenium possono essere creati utilizzando il linguaggio RobotFramework o Python.
Per rendere disponibili i file del progetto Selenium su collettori esterni, è necessario che i servizi syncfs di SKOOR siano configurati e funzionanti. L'utente reranger deve essere configurato per accedere senza password, come descritto nella guida alla replica.
Struttura del robot
Un file robot viene generato utilizzando l'header di /opt/eranger/collector/robot.robot e aggiunto al file fornito nel motore. Solo in casi particolari l'utente potrebbe voler fornire un file robot completo. Una buona fonte di informazioni sulle possibilità è la Guida dell'utente di RobotFramework. I file del robot saranno collocati in /opt/eranger/collector/upload/
Sezione informazioni nella configurazione del lavoro:
L'estensione per Chrome o Firefox Katalon Recorder può essere utilizzata per registrare una procedura di test ed esportare la parte del testcase (formato: robot framework).
Esempi di script:
Un semplice file robot potrebbe avere questo aspetto:
[Teardown] Run Keyword If Test Failed Capture Page Screenshot Set Window Size ${1920} ${1200} Start Timer totalTime Start Timer Open Goto https://my.great.business.com/ Stop Timer Open click link=Business sleep 3s Stop Timer totalTime
Uno script più avanzato con timer multipli e blocchi TRY/EXCEPT:
Start Timer TotalTime Start Timer Open TRY Goto https://my.great.business.com/ Stop Timer Open EXCEPT Capture Page Screenshot Error Timer Website unavailable ErrorCode Timer 11 Stop Timer Open END Start Timer Contact TRY click link=Contact Stop Timer Contact EXCEPT Capture Page Screenshot Error Timer Contact link failed ErrorCode Timer 22 Stop Timer Contact END sleep 2s Start Timer Home TRY click link=Home Stop Timer Home EXCEPT Capture Page Screenshot Error Timer Home link failed ErrorCode Timer 33 Stop Timer Home END sleep 2s Stop Timer TotalTime
Python
I moduli Python di Selenium e SKOOR per i test web di Selenium sono preinstallati in SKOOR Collector. Gli script Python possono essere sviluppati e utilizzati con il plugin man mano che vengono sviluppati. Inoltre, l'IDE Selenium può essere utilizzato per registrare i casi d'uso.
Sezione informazioni nella configurazione del lavoro:
Script di esempio: Per prima cosa, vengono importati i moduli richiesti e vengono impostati i parametri del browser. Quindi, viene avviato il timer SKOOR totalTime e viene eseguito un passo di test in un blocco try/except con un secondo timer, step1. In questo modo, i timer possono essere configurati e utilizzati successivamente nello SKOOR Engine.
#!/usr/bin/python3 import sys, time, skoor, traceback from skoor import SkoorTimer, Variables, SkoorScreenshot from selenium import webdriver from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities opts = Options() opts.set_headless() cap = DesiredCapabilities().CHROME cap["marionette"] = True assert opts.headless # Operating in headless mode driver = webdriver.Chrome(chrome_options=opts) skoor.setLogLevel(skoor.INFO) driver.set_window_size(1920,1200) totalTime = SkoorTimer("TotalTime") step1 = SkoorTimer("Step 1") totalTime.start() try: step1.start() skoor.log(skoor.INFO, "Search started") driver.get("https://xyz.com") driver.find_element_by_id("html-element1") skoor.log(skoor.INFO, "Step 1 done") step1.stop() except: skoor.log(skoor.ERROR, traceback.format_exc()) SkoorScreenshot().capture(driver) step1.error(-2, "Step 1 failed") totalTime.stop() driver.quit() skoor.log(skoor.INFO, "Script done")
Se Selenium IDE è stato usato per registrare un testcase, il contenuto della funzione test_<nome> può essere copiato in un blocco try dello script Python 3. Se sono stati aggiunti altri moduli Python, come by o except, il test viene eseguito in un blocco try:
def test_dict(self): self.driver.get("https://dict.leo.org/englisch-deutsch/") self.driver.set_window_size(1515, 948) self.driver.find_element(By.LINK_TEXT, "Forum").click()
Se l'IDE Selenium ha utilizzato moduli Python aggiuntivi come by o key, questi moduli devono essere aggiunti anche alla sezione di importazione dello script finale:
#!/usr/bin/python3 import sys, time, skoor, traceback from skoor import SkoorTimer, Variables, SkoorScreenshot from selenium import webdriver from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys ...
È importante che l'operazione driver.quit() venga elaborata in ogni caso. Altrimenti si verificherà una perdita di risorse!
Dispositivo Selenium
Quando si crea un dispositivo Selenium, viene mostrata la seguente schermata di opzioni di configurazione:
Il plugin Selenium verrà eseguito in un browser headless direttamente sul collettore selezionato.
Parametri del lavoro di Selenium
Parametro | Descrizione |
---|---|
Limite di tempo di esecuzione | Specificare il tempo di esecuzione del progetto. Questo dipende dalle attività del progetto. Questo parametro è facoltativo; un valore pari a 0 o lasciato vuoto significa che non verrà impostato alcun timeout. |
Nome della suite | Se viene fornito un file robot completo di 'Impostazioni' e così via, viene eseguito senza modifiche. Di solito è richiesta solo la parte "Test Case". In questo caso, l'intestazione viene presa da /opt/eranger/collector/robot.robot. |
Proprietà di Selenium
Parametro | Descrizione |
---|---|
Opzione Selenium | Le sequenze di escape e altre opzioni possono essere impostate da questa proprietà. |
Variabile Selenium | Le variabili per il file robot possono essere definite in questa proprietà, come INFO:info o TIMEOUT:0. |
Dettagli del timer di Selenium
Allo stesso modo in cui i timer vengono aggiunti ai lavori del progetto EEM, i timer possono essere aggiunti sotto un lavoro di Selenium. L'unico parametro è il nome del timer.
I timer che contengono una voce di avvio e una di arresto (generata da "Stop Timer" o "Pause Timer") sono considerati riusciti.
Per utilizzare i timer nel file robot sono disponibili le seguenti parole chiave
Timer di avvio $nome
Timer di pausa $nome
Riprendi timer $nome
Arresta timer $nome
Parametri del timer di Selenium
Parametro | Descrizione |
---|---|
Nome del timer | In un lavoro del Selenium Timer si possono configurare solo il nome del lavoro e il nome del timer. Il nome del lavoro può essere diverso dal nome del timer, ma il nome del timer deve corrispondere al nome del timer scritto nel file del robot. |
Valori e limiti di allarme del timer Selenium
Valore / Limite di allarme | Descrizione |
---|---|
Tempo di esecuzione | Il tempo di esecuzione di questo particolare timer |
Codice risultato | 0 = OK |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro) |
Risultati di Selenium
Dopo l'esecuzione del plugin, la sezione dei valori del lavoro di Selenium appare come segue:
o in caso di errore durante l'esecuzione:
Facendo clic sul link File dei risultati nella sezione Valori si aprirà la seguente nuova scheda del browser:
Questa pagina fornisce una panoramica dei test eseguiti e dei relativi risultati. Per ogni esecuzione in cui i log sono stati raccolti da SKOOR Engine è presente una riga con un timestamp e un link al file dei risultati corrispondente. Se si sono verificati degli errori durante un'esecuzione, il link viene inserito nella colonna Test falliti, insieme a un'immagine della schermata (se scattata dallo script) e ai timer falliti. In questo modo si può avere un'idea del motivo per cui l'esecuzione di un test non è andata a buon fine.
Facendo clic sul file di report nella sezione Valori si aprirà una pagina html che include una panoramica dell'output dell'esecuzione e un link a un file di report html più dettagliato (lo stesso file a cui si può accedere direttamente nella sezione Valori).
Valori e limiti di allarme di Selenium
Valore / Limite di allarme | Descrizione |
---|---|
Tempo di esecuzione | Il tempo di esecuzione del plugin |
Codice risultato | 0 = OK |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro) |