Selenium Jobs mit Timern

Funktion

Dieses Plugin dient zum Webtesten mit dem Selenium-Framework. 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, ruft dann die generierten Protokolldateien ab und zeigt sie auf einer Übersichtsseite an.

Alarmierend

Laufzeit, Antwortcode, Ergebniscode

Allgemeine Informationen zu Selenium Job

Die Selenium -Jobs funktionieren nur ab RHEL/CentOS 7, da es auf älteren Versionen keine Google-Chrome-Unterstützung mehr gibt. Falls die SKOOR Engine auf RHEL6 oder CentOS6 läuft, ist ein externer Kollektor mit RHEL oder CentOS Version 7 oder höher erforderlich, um dieses Plugin zu verwenden.

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 werden, dass er sich ohne Kennwort anmeldet, wie im Replikationshandbuch beschrieben

Selenium -Projekte können entweder mit dem RobotFramework oder der Python-Sprache erstellt werden.

RobotFramework

Eine Roboterdatei wird generiert, indem der Header von /opt/eranger/ Kollektor /robot.robot verwendet und um die bereitgestellte Datei in der Engine angehängt wird. Nur in besonderen Fällen möchte der Benutzer möglicherweise eine vollständige Roboterdatei bereitstellen. Eine gute Informationsquelle zu den Möglichkeiten ist das RobotFramework User Guide. Roboterdateien werden auf /opt/ Kollektor / Kollektor /upload/ abgelegt

Informationsbereich in der Jobkonfiguration:

Beispielskript: Mit der Chrome- oder Firefox-Erweiterung Katalon Recorder kann ein Testablauf aufgezeichnet und der Testfallteil (Format: Robot Framework) exportiert werden.

Eine einfache Roboterdatei könnte dann so aussehen:

    Set Window Size    ${1920}    ${1200}
	Start Timer		totalTime
	Start Timer		Open
	Goto    https://www.skoor.com/
    Capture Page Screenshot
	Stop Timer 		Open
	click	link=Software
	sleep	3s
    Capture Page Screenshot	
    Stop Timer		totalTime

Python

Selenium und SKOOR-Python-Module für Selenium -Webtests sind mit Kollektoren vorinstalliert. Python-Skripte können entwickelt und mit dem Plugin verwendet werden, während sie entwickelt werden. Darüber hinaus kann die Selenium IDE zur Aufzeichnung von Anwendungsfällen verwendet werden.

Informationsbereich in der Jobkonfiguration:

Beispielskript: Zuerst werden die benötigten Module importiert und Browserparameter gesetzt. Dann 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 Testfalls_ Die Funktion kann in einen try-Block des Python-3-Skripts kopiert werden:

  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
 
...


Wichtig ist, dass die Operation driver.quit() auf jeden Fall abgearbeitet wird. Andernfalls kommt es zu einem Ressourcenleck!

Selenium Gerät

Beim Erstellen eines Selenium -Geräts wird der folgende Konfigurationsoptionsbildschirm angezeigt:


Das Selenium -Plugin wird in einem Headless-Browser direkt auf dem ausgewählten Kollektor .

Selenium Job-Parameter

Parameter

Beschreibung

Laufzeitbegrenzung

Geben Sie die Zeitspanne an, die für die Ausführung des Projekts vorgesehen werden soll. Dies hängt davon ab, was das Projekt tut. Dieser Parameter ist optional, ein Wert von 0 oder leer gelassen bedeutet, dass überhaupt kein Timeout gesetzt 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 genommen.

Selenium Eigenschaften

Parameter

Beschreibung

Selenium Option

Escape-Sequenzen und andere Optionen können durch diese Eigenschaft festgelegt werden.

Selenium Variable

In dieser Eigenschaft können Variablen für die Roboterdatei wie INFO:info oder TIMEOUT:0 definiert werden

Einzelheiten zum Selenium -Timer

Auf die gleiche Weise, wie Timer-Jobs zu EEM-Projekt-Jobs hinzugefügt werden, können Timer-Jobs unterhalb eines Selen-Jobs hinzugefügt werden. Der einzige Parameter ist der Name des Timers.

Timer, die einen Start- und einen Stoppeintrag enthalten (erzeugt entweder durch „Stop Timer“ oder „Pause Timer“), gelten als erfolgreich.

Die folgenden Schlüsselwörter sind verfügbar, um Timer in der Roboterdatei zu verwenden

  • Starte den Timer $name

  • Pause-Timer $name

  • Setzen Sie den Timer $name fort

  • Timer $name stoppen

Selenium Timer-Parameter

Parameter

Beschreibung

Timer-Name

Für einen 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, wie er in der Roboterdatei geschrieben ist.

Selenium Timer-Werte und Alarmgrenzen

Wert / Alarm Limit

Beschreibung

Laufzeit

Die Laufzeit dieses bestimmten Timers

Ergebniscode

0 = Okay
-1 = Nicht ausgeführt
-2 = Fehlgeschlagen
-3 = Beendet, aber nicht gestartet
-4 = Timername leer
-5 = Selenium

Fehlercode

Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes )

Selenium Ergebnisse

Nach dem Ausführen des Plugins sieht der Wertebereich des Selenium Jobs folgendermaßen aus:

oder im Falle eines Fehlers während der Ausführung:

Durch Klicken auf den Link „ Ergebnisdateien “ im Abschnitt „ Werte “ wird das folgende neue Browserfenster oder die folgende Registerkarte geöffnet:

Diese Seite bietet eine Übersicht über die durchgeführten Tests und deren Ergebnisse. Für jeden Lauf, bei dem Protokolle von SKOOR Engine gesammelt wurden, gibt es eine Zeile mit einem Zeitstempel und einem Link zur entsprechenden Ergebnisdatei. Wenn während eines Laufs Fehler aufgetreten sind, wird der Link in der Spalte Fehlgeschlagene Tests platziert, zusammen mit einer Ausgabedatei, die geöffnet werden kann. Dies gibt meistens eine gute Vorstellung davon, warum ein Testlauf fehlgeschlagen ist.

Durch Klicken auf die Berichtsdatei im Abschnitt „ Werte “ wird eine HTML-Seite aufgerufen, die eine Übersicht über die Ausführungsausgabe sowie einen Link zu einer detaillierteren HTML-Berichtsdatei enthält (dieselbe Datei, auf die auch direkt im Abschnitt „Werte“ zugegriffen werden kann).

Selenium und Alarmgrenzen

Wert / Alarm Limit

Beschreibung

Laufzeit

Die Laufzeit des Plugins

Ergebniscode

0 = Okay
-1 = Allgemeiner Fehler
-10 = Ausführung fehlgeschlagen
-11 = Parameter fehlt
-12 = Roboterdatei nicht gefunden
-13 = Selenium fehlgeschlagen

Fehlercode

Allgemeiner Job-Fehlercode (siehe Abschnitt Job-Fehlercodes )