Selenium Jobs mit Timern
Funktion | Dieses Plugin ist für Webtests mit dem Selenium-Framework gedacht. Es führt RobotFramework- oder Python-basierte Tests auf einem Headless-Chrome-Browser aus, der sich auf einem Kollektor befindet, wartet auf das Ende der Ausführung, holt dann die generierten Protokolldateien ab und zeigt sie auf einer Übersichtsseite an. |
---|---|
Alarmierend | Laufzeit, Antwortcode, Ergebniscode |
Selenium Job – allgemeine Informationen
Selenium Projekte können entweder mit der Sprache RobotFramework oder Python erstellt werden.
Um Selenium Projektdateien auf externen Kollektoren verfügbar zu machen, müssen die SKOOR-Syncfs-Dienste konfiguriert und ausgeführt werden. Der Benutzer „reranger“ muss so konfiguriert sein, dass er sich ohne Passwort anmeldet, wie im Replikationshandbuch beschrieben.
RoboterFramework
Eine Roboterdatei wird unter Verwendung des Headers von /opt/eranger/ Kollektor /robot.robot generiert und durch die in der Engine bereitgestellte Datei ergänzt. Nur in besonderen Fällen möchte der Benutzer möglicherweise eine vollständige Roboterdatei bereitstellen. Eine gute Quelle für Informationen zu den Möglichkeiten ist das RobotFramework-Benutzerhandbuch. Roboterdateien werden unter /opt/eranger/ Kollektor /upload/ abgelegt.
Informationsbereich in der Jobkonfiguration:
Mit der Chrome- oder Firefox-Erweiterung Katalon Recorder kann ein Testvorgang aufgezeichnet und der Testfallteil exportiert werden (Format: Robot Framework).
Beispielskripte:
Eine einfache Roboterdatei könnte dann so aussehen:
[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
Ein fortgeschritteneres Skript mit mehreren Timern und TRY/EXCEPT-Blöcken:
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 und SKOOR-Python-Module für Selenium Webtests sind mit SKOOR Kollektoren vorinstalliert. Python-Skripte können mit dem Plugin entwickelt und verwendet werden, während sie entwickelt werden. Darüber hinaus kann die Selenium IDE zum Aufzeichnen von Anwendungsfällen verwendet werden.
Informationsabschnitt in der Jobkonfiguration:
Beispielskript: Zunächst werden die benötigten Module importiert und Browserparameter gesetzt. Anschließend wird der SKOOR-Timer totalTime gestartet und ein Testschritt in einem try/except-Block mit einem zweiten Timer step1 ausgeführt. Auf diese Weise können Timer konfiguriert und später in der SKOOR Engine verwendet werden.
#!/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")
Wenn Selenium IDE zum Aufzeichnen eines Testfalls verwendet wurde, wird der Inhalt des Tests
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()
Wenn zusätzliche Python-Module wie by oder key von der Selenium IDE verwendet wurden, müssen diese Module auch zum Importabschnitt des endgültigen Skripts hinzugefügt werden:
#!/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 ...
Es ist wichtig, dass die Operation driver.quit() auf jeden Fall ausgeführt wird. Sonst kommt es zu einem Ressourcenleck!
Selenium -Gerät
Beim Erstellen eines Selenium Geräts wird der folgende Bildschirm mit den Konfigurationsoptionen angezeigt:
Das Selenium Plugin wird in einem Headless-Browser direkt auf dem ausgewählten Kollektor ausgeführt.
Selenium -Jobparameter
Parameter | Beschreibung |
---|---|
Laufzeitlimit | Geben Sie die Zeit an, die für die Ausführung des Projekts zur Verfügung steht. Dies hängt davon ab, was das Projekt tut. Dieser Parameter ist optional. Ein Wert von 0 oder ein leerer Wert bedeutet, dass überhaupt kein Timeout festgelegt wird. |
Suite -Name | Wenn eine vollständige Roboterdatei mit „Einstellungen“ usw. bereitgestellt wird, wird sie unverändert ausgeführt. Normalerweise wird nur der Teil „Testfall“ benötigt. In einem solchen Fall wird der Header aus /opt/eranger/ Kollektor /robot.robot übernommen. |
Selenium
Parameter | Beschreibung |
---|---|
Selenium | Mit dieser Eigenschaft können Escape-Sequenzen und andere Optionen festgelegt werden. |
Selenium | In dieser Eigenschaft können Variablen für die Roboterdatei definiert werden, wie etwa INFO:info oder TIMEOUT:0 |
Details von Selenium Timer
Auf die gleiche Weise, wie Timer-Jobs zu EEM-Projekt-Jobs hinzugefügt werden, können Timer-Jobs unterhalb eines Selenium-Jobs hinzugefügt werden. Der einzige Parameter ist der Timer-Name.
Timer, die einen Start- und einen Stoppeintrag enthalten (generiert entweder durch „Stop Timer“ oder „Pause Timer“), werden als erfolgreich betrachtet.
Die folgenden Schlüsselwörter stehen zur Verwendung von Timern in der Roboterdatei zur Verfügung
Timer $ name starten
Pause Timer $ Name
Lebenslauf Timer $ Name
Timer $ name stoppen
Selenium -Timer -Parameter
Parameter | Beschreibung |
---|---|
Timername | Bei einem Selenium Timer-Job können nur der Job-Name und der Timer-Name konfiguriert werden. Der Name des Jobs kann sich vom Timer-Namen unterscheiden, aber der Timer-Name muss dem Timer-Namen entsprechen, der in der Roboterdatei steht. |
Selenium Timer-Werte und Alarmgrenzen
Wert / Alarm Limit | Beschreibung |
---|---|
Laufzeit | Die Laufzeit dieses Timers |
Ergebniscode | 0 = Okay |
Fehlercode | Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes ) |
Selenium Ergebnisse
Nach einem Lauf des Plugins sieht der Werteabschnitt des Selenium Jobs folgendermaßen aus:
oder im Falle eines Fehlers während der Ausführung:
Wenn Sie im Abschnitt „Werte“ auf den Link „Ergebnisdateien“ klicken, wird die folgende neue Browserregisterkarte geöffnet:
Diese Seite bietet einen Überblick über die ausgeführten Tests und deren Ergebnisse. Für jeden Lauf, bei dem Protokolle von SKOOR Engine gesammelt wurden, gibt es eine Linie mit einem Zeitstempel und einen Link zur entsprechenden Ergebnisdatei. Wenn ein Lauf während eines Laufs Fehler aufgenommen wurde, wird der Link in der Spalte fehlgeschlagener Tests gesetzt.
Durch Klicken auf die Berichtsdatei im Abschnitt Werte wird eine HTML -Seite angezeigt, die einen Überblick über die Ausführungsausgabe sowie einen Link zu einer detaillierteren HTML -Berichtsdatei enthält (dieselbe Datei, auf die auch direkt im Abschnitt der Werte zugegriffen werden kann).
Selenium und Alarmgrenzen
Wert / Alarm Limit | Beschreibung |
---|---|
Laufzeit | Die Laufzeit des Plugins |
Ergebniscode | 0 = Okay |
Fehlercode | Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes ) |