Jobs Selenium avec Timers
Fonction | Ce plugin est destiné aux tests web utilisant le framework Selenium. Il exécute des tests basés sur RobotFramework ou Python sur un navigateur Chrome sans interface graphique situé sur un collecteur, attend la fin de l'exécution, puis récupère les fichiers journaux générés et les affiche dans une page de synthèse. |
|---|---|
Alarme | Durée d'exécution, code de réponse, code de résultat |
Informations générales sur les tâches Selenium
Les projets Selenium peuvent être créés à l'aide du langage RobotFramework ou Python.
Pour que les fichiers de projet Selenium soient disponibles sur des collecteurs externes, les services SKOOR syncfs doivent être configurés et en cours d'exécution. User reranger doit être configuré pour se connecter sans mot de passe, comme décrit dans le guide de réplication.
RobotFramework
Un fichier robot est généré à l'aide de l'en-tête de /opt/eranger/collecteur/robot.robot et ajouté au fichier fourni dans l'Engine. Ce n'est que dans des cas particuliers que l'utilisateur peut souhaiter fournir un fichier robot complet. Le guide de l'utilisateur RobotFramework constitue une bonne source d'informations sur les possibilités offertes. Les fichiers robot seront placés dans /opt/eranger/collecteur/upload/.
Section Informations dans la configuration du travail :
L'extension Chrome ou Firefox Katalon Recorder peut être utilisée pour enregistrer une procédure de test et exporter la partie test (format : robot framework).
Exemples de scripts :
Un fichier robot simple pourrait alors ressembler à ceci :
[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
Un script plus avancé avec plusieurs minuteries et blocs 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 et SKOOR Les modules Python pour les tests web Selenium sont préinstallés avec SKOOR Collectors. Les scripts Python peuvent être développés et utilisés avec le plugin au fur et à mesure de leur développement. De plus, Selenium IDE peut être utilisé pour enregistrer des cas d'utilisation.
Section d'informations dans la configuration de la tâche :
Exemple de script : Tout d'abord, les modules requis sont importés et les paramètres du navigateur sont définis. Ensuite, le minuteur SKOOR totalTime est lancé et une étape de test est exécutée dans un bloc try/except avec un deuxième minuteur, step1. De cette façon, les minuteurs peuvent être configurés et utilisés ultérieurement dans le 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")
Si Selenium IDE a été utilisé pour enregistrer un cas de test, le contenu de la fonction test_<NAME> peut être copié dans un bloc try du 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()
Si des modules Python supplémentaires tels que by ou key ont été utilisés par Selenium IDE, ces modules doivent également être ajoutés à la section import du script final :
#!/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 ...
Il est important que l'opérateur driver.quit() soit traité dans tous les cas. Sinon, il y aura une fuite de ressources !
Dispositif Selenium
Lors de la création d'un périphérique Selenium, l'écran d'options de configuration suivant s'affiche :
Le plugin Selenium s'exécutera dans un navigateur sans interface graphique directement sur le collecteur sélectionné.
Paramètres de tâche Selenium
Paramètre | Description |
|---|---|
Limite de temps d'exécution | Spécifiez la durée autorisée pour l'exécution du projet. Celle-ci dépend de la nature du projet. Ce paramètre est facultatif. Une valeur de 0 ou un champ laissé vide signifie qu'aucun délai d'expiration ne sera défini. |
Nom de la suite | Si un fichier robot complet avec « Paramètres », etc. est fourni, il est exécuté sans modification. En général, seule la partie « Cas de test » est requise. Dans ce cas, l'en-tête est extrait de /opt/eranger/collecteur/robot.robot. |
Propriétés Selenium
Paramètre | Description |
|---|---|
Option Selenium | Les séquences d'échappement et d'autres options peuvent être définies par cette propriété. |
Variable Selenium | Les variables pour le fichier robot peuvent être définies dans cette propriété, par exemple INFO:info ou TIMEOUT:0 |
Détails du minuteur Selenium
De la même manière que les tâches de minuterie sont ajoutées aux tâches du projet EEM, les tâches de minuterie peuvent être ajoutées sous une tâche Selenium. Le seul paramètre est le nom de la minuterie.
Les minuteries contenant une entrée de démarrage et une entrée d'arrêt (générées par « Stop Timer » ou « Pause Timer ») sont considérées comme réussies.
Les mots-clés suivants sont disponibles pour utiliser les minuteries dans le fichier robot
Démarrer le minuteur $name
Pause Timer $name
Reprendre le minuteur $name
Arrêter le minuteur $name
Paramètres du minuteur Selenium
Paramètre | Description |
|---|---|
Nom du minuteur | Seuls le nom de la tâche et le nom du minuteur peuvent être configurés sur une tâche Selenium Timer. Le nom de la tâche peut être différent du nom du minuteur, mais le nom du minuteur doit correspondre au nom du minuteur tel qu'il est écrit dans le fichier robot. |
Valeurs du minuteur Selenium et limites d'alarme
Valeur / Limite d'alarme | Description |
|---|---|
Durée d'exécution | Durée d'exécution de ce minuteur particulier |
Code de résultat | 0 = |
Code d'erreur | Code d'erreur générique de la tâche (voir la section Codes d'erreur des tâches) |
Résultats Selenium
Après l'exécution du plugin, la section des valeurs de la tâche Selenium se présente comme suit :
ou en cas d'erreur pendant l'exécution :
En cliquant sur le lien Fichiers de résultats dans la section Valeurs, le nouvel onglet de navigateur suivant s'affiche :
Cette page fournit un aperçu des tests qui ont été exécutés et de leurs résultats. Pour chaque exécution pour laquelle des journaux ont été collectés par SKOOR Engine, il y a une ligne avec un horodatage et un lien vers le fichier de résultats correspondant. S'il y a eu des erreurs pendant une exécution, le lien est placé dans la colonne Tests échoués, avec une capture d'écran (si elle a été prise par le script) et le ou les minuteurs qui ont échoué. Cela donne généralement une bonne idée de la raison pour laquelle un test a échoué.
En cliquant sur le fichier Rapport dans la section Valeurs, vous accédez à une page html qui comprend un aperçu du résultat de l'exécution ainsi qu'un lien vers un fichier html plus détaillé (le même fichier que celui accessible directement dans la section Valeurs).
Valeurs Selenium et limites d'alarme
Valeur / Limite d'alarme | Description |
|---|---|
Durée d'exécution | Durée d'exécution du plugin |
Code de résultat | 0 = |
Code d'erreur | Code d'erreur générique de la tâche (voir la section Codes d'erreur des tâches) |






