Lavori di Selenium con timer
Funzionalità | Questo plugin è destinato ai test web che utilizzano il framework Selenium. Esegue test basati su RobotFramework o Python su un browser Chrome headless situato su un collector, attende il completamento dell'esecuzione, quindi recupera i file di log generati e li visualizza in una pagina di panoramica. |
|---|---|
Avvisi | Tempo di esecuzione, codice di risposta, codice di risultato |
Informazioni generali sul processo Selenium
I progetti Selenium possono essere creati utilizzando sia RobotFramework che il linguaggio Python.
RobotFramework
Un file robot viene generato utilizzando l’intestazione presente in /opt/eranger/collector/robot.robot e integrata con il file fornito nell’Engine. Solo in casi particolari l’utente potrebbe voler fornire un file robot completo. Una buona fonte di informazioni sulle possibilità offerte è la Guida per l’utente di RobotFramework. I file robot verranno collocati in /opt/eranger/collector/upload/
Sezione Informazioni nella configurazione del lavoro:
È possibile utilizzare l’estensione Katalon Recorder per Chrome o Firefox per registrare una procedura di test ed esportare la parte relativa al test case (formato: Robot Framework).
Esempi di script:
Un semplice file robot potrebbe quindi apparire così:
[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 più timer 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 Selenium e SKOOR per i test web con Selenium sono preinstallati con SKOOR Collector. Gli script Python possono essere sviluppati e utilizzati con il plugin man mano che vengono creati. Inoltre, è possibile utilizzare Selenium IDE per registrare i casi d'uso.
Sezione informativa nella configurazione del lavoro:
Script di esempio: Innanzitutto, vengono importati i moduli necessari e impostati i parametri del browser. Successivamente, 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 in seguito nell'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 import ChromeOptions
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
opts = ChromeOptions()
opts.add_argument("--headless=new")
opts.add_argument("--no-sandbox")
opts.add_argument("--disable-setuid-sandbox")
opts.add_argument("--disable-gpu")
opts.add_argument("--allow-running-insecure-content")
opts.add_argument("--disable-extensions")
opts.add_argument("--ignore-certificate-errors")
opts.binary_location = os.getenv("SKOOR_PUPPETEER_CHROME_EXECUTABLE")
cap = DesiredCapabilities().CHROME
cap["marionette"] = True
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 utilizzato per registrare un caso di test, il contenuto della funzione test_<NOME> può essere copiato in un blocco try dello script Python 3:
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 Selenium IDE ha utilizzato moduli Python aggiuntivi come `by` o `key`, questi moduli devono essere aggiunti anche alla sezione `import` 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 import ChromeOptions 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 eseguita in ogni caso. In caso contrario si verificherà una perdita di risorse!
Dispositivo Selenium
Quando si crea un dispositivo Selenium, viene visualizzata la seguente schermata delle opzioni di configurazione:
Il plugin Selenium verrà eseguito in un browser headless direttamente sul collector selezionato.
Parametri del processo Selenium
Parametro | Descrizione |
|---|---|
Limite di tempo di esecuzione | Specificare il tempo a disposizione per l'esecuzione del progetto. Questo dipende da cosa fa il progetto. Questo parametro è facoltativo; un valore pari a 0 o un campo lasciato vuoto indica che non verrà impostato alcun timeout. |
Nome della suite | Se viene fornito un file robot completo con "Impostazioni" ecc., questo viene eseguito senza modifiche. Di solito è richiesta solo la parte "Caso di test". In tal caso, l'intestazione viene prelevata da /opt/eranger/collector/robot.robot. |
Proprietà Selenium
Parametro | Descrizione |
|---|---|
Opzione Selenium | Tramite questa proprietà è possibile impostare sequenze di escape e altre opzioni. |
Variabile Selenium | In questa proprietà è possibile definire variabili per il file del robot, ad esempio INFO:info o TIMEOUT:0 |
Dettagli del timer Selenium
Allo stesso modo in cui i lavori con timer vengono aggiunti ai lavori del progetto EEM, è possibile aggiungere lavori con timer sotto un lavoro Selenium. L'unico parametro è il nome del timer.
I timer contenenti una voce di avvio e una di arresto (generate da “Stop Timer” o “Pause Timer”) sono considerati riusciti.
Per utilizzare i timer nel file del robot sono disponibili le seguenti parole chiave
Avvia timer $nome
Metti in pausa timer $name
Riprendi timer $name
Stop Timer $name
Parametri del timer Selenium
Parametro | Descrizione |
|---|---|
Nome del timer | In un'attività con timer Selenium è possibile configurare solo il nome dell'attività e il nome del timer. Il nome dell'attività può essere diverso dal nome del timer, ma il nome del timer deve corrispondere a quello specificato nel file del robot. |
Valori del timer Selenium e limiti di allarme
Valore / Limite di allarme | Descrizione |
|---|---|
Tempo di esecuzione | Il tempo di esecuzione di questo specifico timer |
Codice di risultato | 0 = |
Codice di errore | Codice di errore generico del job (vedere la sezione Codici di errore del job) |
Risultati Selenium
Dopo l'esecuzione del plugin, la sezione dei valori del processo Selenium appare così:
oppure, 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 SKOOR Engine ha raccolto i log, è presente una riga con un timestamp e un link al file di risultato corrispondente. Se durante un'esecuzione si sono verificati errori, il link viene inserito nella colonna "Test falliti", insieme a uno screenshot (se acquisito dallo script) e ai timer che hanno segnalato l'errore. Ciò fornisce in genere un'idea chiara del motivo per cui un'esecuzione del test è fallita.
Facendo clic sul file "Report" nella sezione "Valori" si aprirà una pagina HTML che include una panoramica dell’output dell’esecuzione, nonché un link a un file di report HTML più dettagliato (lo stesso file a cui è possibile accedere direttamente anche nella sezione "Valori").
Valori Selenium e limiti di allarme
Valore / Limite di allarme | Descrizione |
|---|---|
Tempo di esecuzione | Il tempo di esecuzione del plugin |
Codice di risultato | 0 = |
Codice di errore | Codice di errore generico del processo (vedere la sezione Codici di errore del processo) |






