Travaux de Selenium avec minuteries
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 tête situé sur un collecteur , il 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 présentation. |
---|---|
Alarmant | Temps d'exécution, code de réponse, code de résultat |
Informations générales sur le travail Selenium
Les projets Selenium peuvent être créés à l'aide du langage RobotFramework ou Python.
Pour rendre les fichiers du projet Selenium disponibles sur collecteurs externes, les services SKOOR syncfs doivent être configurés et exécutés. Le réorganisateur d'utilisateurs 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 Engine . Ce n'est que dans des cas particuliers que l'utilisateur peut vouloir fournir un fichier robot complet. Le Guide de l'utilisateur de RobotFramework constitue une bonne source d'informations sur les possibilités. Les fichiers du robot seront placés sur /opt/eranger/ collecteur /upload/
Section d'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 du cas de test (format : robot framework).
Exemples de scripts :
Un simple fichier robot 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 timers 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
Les modules Selenium et SKOOR Python pour les tests Web Selenium sont préinstallés avec SKOOR Collecteurs . Les scripts Python peuvent être développés et utilisés avec le plugin au fur et à mesure de leur développement. De plus, l' IDE Selenium peut être utilisé pour enregistrer des cas d'utilisation.
Section d'informations dans la configuration du travail :
Exemple de script : Tout d'abord, les modules requis sont importés et les paramètres du navigateur sont définis. Ensuite, le timer SKOOR totalTime est démarré et une étape de test est exécutée dans un bloc try/sauf avec un deuxième timer, step1 . De cette façon, les minuteries peuvent être configurées et utilisées 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.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")
Si Selenium IDE a été utilisé pour enregistrer un scénario de test, le contenu du test_
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 comme by ou key ont été utilisés par l'IDE Selenium , ces modules doivent également être ajoutés à la section d'importation 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.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 ...
Il est important que l'opération driver.quit() soit traitée dans tous les cas. Sinon il y aura une fuite de ressources !
Appareil Selenium
Lors de la création d'un appareil Selenium l'écran d'options de configuration suivant s'affiche :
Le plugin Selenium s'exécutera dans un navigateur sans tête directement sur le collecteur sélectionné.
Paramètres du travail Selenium
Paramètre | Description |
---|---|
Limite de temps d'exécution | Spécifiez le temps à accorder pour l’exécution du projet. Cela dépend de ce que fait le projet. Ce paramètre est facultatif, une valeur de 0 ou laissé vide signifie qu'aucun délai d'attente 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. Habituellement, seule la partie « Test Case » est requise. Dans un tel cas, l'en-tête est extrait de /opt/eranger/ collecteur /robot.robot. |
Propriétés Selenium
Paramètre | Description |
---|---|
Option Selenium | Des séquences d'échappement et d'autres options peuvent être définies par cette propriété. |
Variable Selenium | Les variables du fichier robot peuvent être définies dans cette propriété comme INFO:info ou TIMEOUT:0 |
Détails de la minuterie Selenium
De la même manière que les tâches de minuterie sont ajoutées aux tâches de projet EEM, les tâches de minuterie peuvent être ajoutées sous une tâche de sélénium. 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 la minuterie $name
Minuterie de pause $name
Reprendre le minuteur $name
Arrêter le minuteur $name
Paramètres de la minuterie Selenium
Paramètre | Description |
---|---|
Nom de la minuterie | Seuls le nom du travail et le nom du minuteur peuvent être configurés sur un travail Selenium Timer. Le nom du travail peut être différent du nom du minuteur mais le nom du minuteur doit correspondre au nom du minuteur tel qu'écrit dans le fichier du robot. |
Valeurs de la minuterie Selenium et limites d'alarme
Valeur / Limite d'alarme | Description |
---|---|
Durée | La durée d'exécution de cette minuterie particulière |
Code résultat | 0 = D'accord |
Code d'erreur | Code d'erreur de travail générique (voir la section Codes d'erreur de travail ) |
Résultats Selenium
Après une exécution du plugin, la section valeurs du travail Selenium ressemble à ceci :
ou en cas d'erreur lors de l'exécution :
En cliquant sur le lien Fichiers de résultats dans la section Valeurs , le nouvel onglet de navigateur suivant apparaîtra :
Cette page fournit un aperçu des tests exécutés et de leurs résultats. Pour chaque exécution où les journaux ont été collectés par SKOOR Engine il existe une ligne avec un horodatage et un lien vers le fichier de résultats correspondant. S'il y a eu des erreurs lors d'une exécution, le lien est placé dans la colonne Tests ayant échoué , avec une capture d'écran (si prise par le script) et le(s) minuteur(s) ayant échoué. Cela donne principalement une bonne idée de la raison pour laquelle un test a échoué.
Cliquer sur le fichier de rapport dans la section Valeurs fera apparaître une page HTML qui comprend un aperçu du résultat de l'exécution ainsi qu'un lien vers un fichier de rapport HTML plus détaillé (le même fichier qui est également accessible directement dans la section valeurs).
Valeurs Selenium et limites d'alarme
Valeur / Limite d'alarme | Description |
---|---|
Durée | Le temps d'exécution du plugin |
Code résultat | 0 = D'accord |
Code d'erreur | Code d'erreur de travail générique (voir la section Codes d'erreur de travail ) |