Jobs Selenium avec Timers
Fonctionnalité | 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 (headless) 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 sur une page de synthèse. |
|---|---|
Alertes | 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 soit à l'aide de RobotFramework, soit en langage 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. L’utilisateur 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é à partir de l'en-tête situé dans /opt/eranger/collecteur/robot.robot, auquel est ajouté le 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 d'utilisation de 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 de la tâche :
L’extension Chrome ou Firefox « Katalon Recorder » peut être utilisée pour enregistrer une procédure de test et exporter la partie relative au cas de 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 des 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
Les modules Python Selenium et SKOOR pour les tests Web Selenium sont préinstallés avec les 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 manière, 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_<NOM> 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ération `driver.quit()` soit exécutée dans tous les cas. Sinon, il y aura une fuite de ressources !
Périphérique 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 allouée à 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 comprenant les « Paramètres », etc. est fourni, il est exécuté tel quel. En général, seule la partie « Cas de test » est requise. Dans ce cas, l'en-tête est extrait du fichier /opt/eranger/collecteur/robot.robot. |
Propriétés Selenium
Paramètre | Description |
|---|---|
Option Selenium | Cette propriété permet de définir des séquences d'échappement et d'autres options. |
Variable Selenium | Les variables du 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 planifiées sont ajoutées aux tâches d’un projet EEM, elles peuvent être ajoutées sous une tâche Selenium. Le seul paramètre est le nom de la tâche planifiée.
Les minuteries contenant une entrée de démarrage et une entrée d’arrêt (générées soit par « Stop Timer », soit par « 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
Mettre le minuteur en pause $name
Reprendre le minuteur $name
Stop Timer $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 dans une tâche de minuteur Selenium. Le nom de la tâche peut être différent du nom du minuteur, mais ce dernier doit correspondre au nom du minuteur tel qu'il est indiqué dans le fichier du robot. |
Valeurs et limites d'alarme du minuteur Selenium
Valeur / Limite d'alarme | Description |
|---|---|
Durée d'exécution | Durée d'exécution de ce minuteur spécifique |
Code de résultat | 0 = OK - 1 |
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 « Valeurs » de la tâche Selenium se présente comme suit :
ou en cas d’erreur lors de l’exécution :
En cliquant sur le lien « Fichiers de résultats » dans la section « Valeurs », vous ouvrirez le nouvel onglet de navigateur suivant :
Cette page offre 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, une ligne apparaît avec un horodatage et un lien vers le fichier de résultats correspondant. Si des erreurs se sont produites au cours d’une exécution, le lien est placé dans la colonne « Tests échoués », accompagné d’une capture d’écran (si elle a été prise par le script) et du ou des temporisateurs ayant échoué. Cela permet généralement de bien comprendre pourquoi une exécution de test a échoué.
En cliquant sur le fichier « Rapport » dans la section « Valeurs », vous accédez à une page HTML qui présente un aperçu des résultats de l’exécution ainsi qu’un lien vers un fichier de rapport HTML plus détaillé (le même fichier auquel vous pouvez également accéder directement depuis la section « Valeurs »).
Valeurs Selenium et seuils d’alerte
Valeur / Seuil d’alerte | Description |
|---|---|
Durée d’exécution | Durée d’exécution du plugin |
Code de résultat | 0 = OK - |
Code d'erreur | Code d'erreur générique de la tâche (voir la section « Codes d'erreur des tâches ») |






