Selenium Connector

Verwendung

Der Selenium Connector verbindet das Test-Framework Selenium mit der Testumgebung der INUBIT-Software.

Er wird verwendet, um automatisierte Testfälle bzw. Test-Suiten webbasierter Benutzeroberflächen und Web-Applikationen, die mit dem Selenium-Framework erstellt wurden, aus dem Workflow heraus zu steuern.

Der Konnektor kann eingesetzt werden, um z.B. Portalfunktionen des INUBIT Enterprise Portals zu testen.

Benutzereigene Erweiterungen mit der Möglichkeit, eigene Test-Kommandos zu definieren und in der user-extensions.js zu hinterlegen, werden nicht unterstützt.

Der Selenium Connector ist nur mit den Versionen 1.x des Selenium-Servers kompatibel. Die Version 2 des Selenium-Servers wird nicht unterstützt.

Konnektortypen

Ein Selenium Connector kann als Medium oder Output Connector verwendet werden:

  • Medium Connector
    Sendet XML-Testdaten an den Selenium Remote Control-Server und erhält Log-Daten vom Selenium-Server zurück, die an das folgende Modul im Workflow übergeben werden.

  • Output Connector
    Sendet XML-Testdaten an den Selenium Remote Control-Server und erhält Log-Daten vom Selenium-Server zurück, die an eine Zielapplikation weitergegeben werden.

Voraussetzungen

  • Die komplette Selenium-Testumgebung muss installiert sein.

  • Ein Selenium Remote Control-Server muss installiert sein.

  • Ein Web-Browser muss installiert sein.

Informationen über Selenium finden Sie unter folgenden Links:

Funktionsprinzip

Der Selenium Connector verbindet sich mit dem Selenium Remote Control-Server, um einen auf lokalen oder entfernten Rechnern installierten Web-Browser zu steuern. Der Server startet, stoppt den Browser und fungiert für den Browser als HTTP Proxy.

module guide 1195 0

Eingangsnachricht

Der Selenium Connector erwartet eine XML-Eingangsnachricht, die z.B. folgendermaßen aussieht:

<?xml version="1.0" encoding="UTF-8"?>
<script>
  <base-url>https://www.google.de</base-url>
  <suite>
    <command>
      <action>setSpeed</action>
      <target>500</target>
      <value />
    </command>
    <command>
      <action>open</action>
      <target>/</target>
      <value />
    </command>
    <command>
      <action>type</action>
      <target>q</target>
      <value>inubit</value>
    </command>
    <command>
      <action>clickAndWait</action>
      <target>btnG</target>
      <value />
    </command>
  </suite>
</script>

In der Eingangsnachricht muss die base-url der zu testenden Applikation angegeben werden: diese URL muss gesetzt werden, um Pfadangaben relativ zu machen, denn so können Tests auch unabhängig vom Ort der Applikation ausgeführt werden.

Für eine korrekte Ausführung müssen die Domains im base-url-Element und im open-Element identisch sein.

Templates für Eingabe- und Ausgangsnachrichten finden Sie im Repository unter Global > System > Mapping Templates > Selenium Connector

Verarbeitung

Die Eingangsnachricht übergibt der Selenium Connector dem Selenium Server. Dieser führt die Test-Befehle aus und übergibt dem Connector die Zusammenfassung der Test-Resultate. Diese Log-Daten gibt der Selenium Connector als Ausgangsnachricht aus.

Ausgangsnachricht

<result>
  <suite>
    <command display="setSpeed(500)" duration="31">OK</command>
    <command display="open(/)" duration="813">OK</command>
    <command display="type(q)" duration="500">OK</command>
    <command display="clickAndWait(btnG)" duration="1062">OK</command>
  </suite>
  <lastlogs>
    <lastlog>
      <![CDATA[13:24:42.413 INFO [10] org.mortbay.util.Container - Startet ...]]>
    </lastlog>
    [...]
  </lastlogs>
</result>

Fehlerbehandlung

Fehler Ursache Lösung

You appear to be changing domains from http://XXX to http://ZZZ

Wenn keine Basis-URL angegeben ist, benutzt die INUBIT-Software die Vorauswahl des RC-Servers. Manche Browser werten den Wechsel von der Vorauswahl zu der URL, die im Element <open> angegeben ist, als Cross-Site-Scripting und verhindern die weitere Ausführung oder lösen einen Fehler aus.

Geben Sie die Basis-URL in der Eingangsnachricht im Element base-url an, z.B.

<base-url>
  https://www.google.com
</base-url>

Danach muss das open-Element mit der base- `url `identisch sein, da sonst derselbe Fehler wieder auftritt.

Connection refused: connect

Der Remote Control-Server läuft nicht oder die angegebene ServerPort-Adresse ist falsch.

Prüfen Sie die Verfügbarkeit des Selenium RC-Servers, indem Sie im Dialog auf den Verbindungstest-Button klicken. Der Server läuft, wenn Sie als Rückgabe Verbindungstest war erfolgreich erhalten und auf dem Rechner, auf dem der RC Server installiert ist, eine Firefox-Instanz geöffnet wird.

Zum Problem der Basis-URL und des Cross-site-Scriptings siehe https://en.wikipedia.org/wiki/Same_origin_policy und siehe https://en.wikipedia.org/wiki/Cross-site_scripting.

Dialog Selenium Connector Eigenschaften

In diesem Dialog geben Sie die Zugangsdaten für den Selenium Remote Control-Server an und konfigurieren Einstellungen für die Verbindung mit dem Server.

Selenium Remote Control-Server

  • Server
    Adresse des angesprochenen Selenium Remote Control-Servers.

  • Port
    Der Selenium Remote Control-Server verwendet Port 4444.

  • Browser
    Zu startender Browser inklusive *.
    Für eine Übersicht über die von Selenium unterstützten Browser siehe https://www.selenium.dev/documentation/webdriver/browsers/.

  • Timeout (ms)
    Ausführungszeit in Millisekunden. Nach Ablauf der angegebenen Zeitdauer wird der Test abgebrochen. Standardwert: 30.000 ms. Falls hier kein Wert eingegeben ist, fällt der Konnektor automatisch auf den Standardwert zurück.

    Ein sehr lange ablaufender Test wird durch die hier gesetzte Timeout-Beschränkung vorzeitig unterbrochen.
  • Screenshot im Fehlerfall erzeugen
    Wenn markiert, dann wird im Fehlerfall ein Screenshot in Form einer base64-kodierten png-Datei als error- screenshot-Element in die XML-Ausgangsnachricht geschrieben.

    Sie können z.B. über ein Decoder Modul als nachfolgendes Modul im Workflow die base64-kodierte Screenshot-Datei in ein Binärformat überführen und über einen Output File Connector an eine Zielapplikation übergeben.

Verbindungstest

  • Verbindung testen
    Zum Testen, ob die Verbindung mit Ihren Angaben erfolgreich aufgebaut werden kann.