Lavori di Selenium con timer
Funzione | Questo plugin è destinato al test web utilizzando 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. |
|---|---|
Allarme | Tempo di esecuzione, codice di risposta, codice di risultato |
Informazioni generali sui lavori Selenium
I progetti Selenium possono essere creati utilizzando il linguaggio RobotFramework o Python.
Per rendere disponibili i file di progetto Selenium su collector esterni, è necessario configurare ed eseguire i servizi SKOOR syncfs. User reranger deve essere configurato per effettuare il login senza password, come descritto nella guida alla replica.
RobotFramework
Un file robot viene generato utilizzando l'intestazione da /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 per l'utente di RobotFramework. I file robot saranno collocati in /opt/eranger/collector/upload/
Sezione Informazioni nella configurazione del lavoro:
L'estensione Katalon Recorder per Chrome o Firefox può essere utilizzata per registrare una procedura di test ed esportare la parte relativa al caso di test (formato: robot framework).
Script di esempio:
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
Selenium e SKOOR I moduli Python per i test web Selenium sono preinstallati con SKOOR Collectors. Gli script Python possono essere sviluppati e utilizzati con il plugin man mano che vengono sviluppati. Inoltre, Selenium IDE può essere utilizzato per registrare i casi d'uso.
Sezione informativa nella configurazione del lavoro:
Script di esempio: Innanzitutto, 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 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 elaborata 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 collettore selezionato.
Parametri del lavoro Selenium
Parametro | Descrizione |
|---|---|
Limite di tempo di esecuzione | Specificare il tempo consentito per l'esecuzione del progetto. Questo dipende dall'attività svolta dal 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 con "Impostazioni" ecc., questo viene eseguito senza modifiche. Di solito è richiesta solo la parte "Caso di test". In tal caso, l'intestazione viene presa da /opt/eranger/collector/robot.robot. |
Proprietà Selenium
Parametro | Descrizione |
|---|---|
Opzione Selenium | Le sequenze di escape e altre opzioni possono essere impostate tramite 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 Selenium
Allo stesso modo in cui i lavori del timer vengono aggiunti ai lavori del progetto EEM, i lavori del timer possono essere aggiunti sotto un lavoro Selenium. L'unico parametro è il nome del timer.
I timer che contengono una voce di avvio e una di arresto (generate da "Stop Timer" o "Pause Timer") sono considerati riusciti.
Le seguenti parole chiave sono disponibili per utilizzare i timer nel file robot
Avvia timer $name
Pausa timer $name
Riprendi timer $name
Stop Timer $name
Parametri del timer Selenium
Parametro | Descrizione |
|---|---|
Nome timer | Su un lavoro Selenium Timer è possibile 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 robot. |
Valori del timer Selenium e limiti di allarme
Valore / Limite di allarme | Descrizione |
|---|---|
Tempo di esecuzione | Il tempo di esecuzione di questo particolare timer |
Codice risultato | 0 = |
Codice di errore | Codice di errore generico del processo (vedere la sezione Codici di errore dei processi) |
Risultati Selenium
Dopo l'esecuzione del plugin, la sezione dei valori del processo Selenium appare come segue:
oppure, in caso di errore durante l'esecuzione:
Cliccando 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 sono stati raccolti i log da SKOOR Engine, è presente una riga con un timestamp e un link al file dei risultati corrispondente. Se durante l'esecuzione si sono verificati degli errori, il link viene inserito nella colonna Test falliti, insieme a uno screenshot (se acquisito dallo script) e ai timer falliti. Questo fornisce un'idea chiara del motivo per cui un test non è andato a buon fine.
Cliccando sul file 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 è possibile accedere direttamente nella sezione valori).
Valori Selenium e limiti di allarme
Valore / Limite di allarme | Descrizione |
|---|---|
Tempo di esecuzione | Il tempo di esecuzione del plugin |
Codice risultato | 0 = |
Codice di errore | Codice di errore generico del lavoro (vedere la sezione Codici di errore del lavoro) |






