Handbuch

14
Testen von Webseiten

QF-Test bietet Support für verschiedene Browser und ist in der Lage, diese zu kontrollieren. Somit können Anwender ihre manuellen Interaktionen mit dem Browser aufzeichnen und diese anschließend im Browser wieder abspielen. Um den vollen Zugriff auf den Browser zu erlangen, verfolgt QF-Test 2 verschiedene Ansätze die im folgenden noch einmal kurz erläutert werden.

Hinweis Beide Ansätze sind notwendig und sie werden weiter nebeneinander existieren und voll unterstützt werden. Für die meisten Browser ist nur jeweils eine der beiden Methoden überhaupt möglich. Nur Chrome unter Windows und Firefox bis einschließlich Version 43 unter Linux und Windows können auf beiden Wegen angesprochen werden. QF-Test versucht, automatisch den richtigen Modus zu wählen. Sie können die Kontrolle darüber mit Hilfe des Attributs 'Verbindungsmodus für den Browser' im 'Web-Engine starten' Knoten übernehmen.

14.1
Testen mit Hilfe des QF-Driver Verbindungsmodus

Bei diesem Ansatz wird der auf dem Rechner des Anwenders installierte Browser in ein so genanntes Wrapper-Fenster eingebunden. Man spricht bei diesem Ansatz auch von Embedding. QF-Test bindet in dieses Fenster den lokal installierten Web-Browser nativ ein und erlangt somit Zugriff auf die Automatisierungs-Interfaces des jeweiligen Browsers. Über diese kann QF-Test dann die benötigten Events vom Browser abgreifen aber auch umgekehrt Events in den Browser einspeisen.

Die Einbettung des Browsers in ein separates Fenster funktioniert für neuere Browser leider nicht mehr zufriedenstellend bzw. im Fall von Microsoft Edge gar nicht. Aus diesem Grund wurde für QF-Test 4.1 ein alternativer Mechanismus implementiert, welcher im nächsten Abschnitt erläutert wird.

14.2
Testen mit Hilfe der WebDriver Anbindung

4.1+ Da der bestehende QF-Driver Ansatz zur Browser-Anbindung mit Hilfe von Embedding leider nicht von allen Browserherstellern weiter gepflegt bzw. überhaupt unterstützt wird, wurde für QF-Test 4.1 ein neuer Mechanismus implementiert, um auch zukünftige Browser und Browser-Versionen für die Tests verwenden zu können. Dieser Mechanismus verwendet als Bindeglied zwischen dem Browser und QF-Test den Selenium WebDriver.

Hinweis Der WebDriver Modus ist im Bezug auf Performance und Funktionsumfang (siehe Abschnitt 14.2.4) noch nicht ganz auf dem Stand von QF-Driver. Bei der Aufnahme kann es vorkommen, dass Event verloren gehen. Wir empfehlen bis auf Weiteres, für Aufnahme primär den QF-Driver Modus zu verwenden. Detaillierte Informationen zu den je nach Verbindungsmodus und Betriebssystem unterstützten Browsern finden Sie in den Systemvoraussetzungen in Abschnitt 1.1.

14.2.1
WebDriver allgemein

WebDriver entwickelt sich langsam zu einem W3C-Standard für die Steuerung von Web-Browsern. (http://www.w3.org/TR/webdriver). Er ist definiert als sogenanntes Remote-Control-Interface, das es erlaubt, die im Browser anzeigten Inhalte zu analysieren und den Browser zu steuern. WebDriver stellt hierfür ein plattform- und sprachunabhängiges Netzprotokoll zur Verfügung.

Die verschiedenen Browser-Hersteller haben sich auf diesen Quasi-Standard geeinigt, was dazu führt, dass die WebDriver-Integration direkt von den Browser-Herstellern mitentwickelt wird. Die Integration erfolgt teilweise über Plugins, bei manchen Herstellern ist die Integration bereits direkt mit in der Standard-Installation des Browsers enthalten.

QF-Test nutzt die WebDriver-Interfaces um mit dem Browser zu interagieren. Da der WebDriver-Ansatz nur teilweise zu den Konzepten von QF-Test passt, wurde die Web-Engine von QF-Test so erweitert, dass auch bei der Anbindung per WebDriver ein möglichst großer Funktionsumfang von QF-Test genutzt werden kann und dem Anwender die Mehrwert-Features von QF-Test wie z.B. Synchronisation, Abstraktion von Komponenten usw. wie gewohnt zur Verfügung stehen.

Zudem kann der QF-Test Ansatz bei Verwendung des WebDriver Modus mit bereits bestehenden Selenium Skripten kombiniert werden, die QF-Test direkt in einem 'SUT Skript' Knoten ausführen kann (vgl. Abschnitt 47.2).

Hinweis Bei der Verwendung des WebDriver Modus kann nun im 'Web-Engine starten' auch für andere Browser als Firefox explizit ein Browser-Installationsverzeichnis im Attribut 'Verzeichnis der Browser-Installation' angegeben werden. Wird im angegebenen Verzeichnis kein passender Browser gefunden, so wird eine Ausnahme ausgelöst. Ist kein Verzeichnis angegeben, so wird versucht, einen Standard-Browser des entsprechenden Typs zu starten.

Hinweis Um die bekannten QF-Test-Features wie Event- und Check-Aufnahme, merkmal-basierte Komponentenerkennung oder Web- bzw. Custom-Resolver auch im WebDriver-Modus verwenden zu können muss QF-Test die Inhalte des Browser-Fensters kontinuierlich analysieren und auf Änderungen überwachen. Dies kann in einigen Browsern eine Warnung hervorrufen, die sich auf Mixed-Mode-Darstellung bzw. die Verwendung eines unbekannten Zertifikats bezieht. Wenn diese Warnung bzw. Fehlermeldung nur während des Tests Ihrer Website mit QF-Test auftritt, so kann sie ignoriert werden.

14.2.2
WebDriver mit Microsoft Edge (bis Edge Version 44)

Da Microsoft Edge bis Version 75 nicht mit vorinstallierter WebDriver Unterstützung ausgeliefert wird, müssen Sie diese einmalig manuell installieren.

FÜr Windows 10 1809 und 1903 ist der Microsoft WebDriver ein "Feature on Demand". Zur Installation öffnen Sie die "Windows-Einstellungen > Apps > Apps & Features > Optionale Features verwalten" und fügen Sie den "Microsoft WebDriver" als neues Feature hinzu (Alternativ können Sie auch diesen Befehl als Administrator in einer Eingabeaufforderung ausführen: DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0). Auf älteren Systeme (bis Windows 10-1803) gehen Sie auf die Microsoft WebDriver Website, laden Sie sich die für Ihr Betriebssystem passende Version herunter und installieren Sie diese.

Darüber hinaus muss für den Edge Browser eine Loopback-Ausnahme definiert werden. Windows 10 nutzt eine Entkoppelungs-Technik, welche in einigen Fällen die Kommunikation zwischen Edge und QF-Test behindert. Obwohl dies nicht auf jedem System der Fall ist empfehlen wir, vor dem Test mit Edge die Loopback-Kommunikation ausdrücklich zu erlauben.

Um Loopback für Edge zu erlauben öffnen Sie als Administrator eine Kommandozeile und starten dort:

CheckNetIsolation LoopbackExempt -a -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

Um Loopback für Edge wieder zu deaktivieren öffnen Sie als Administrator eine Kommandozeile und starten dort:

CheckNetIsolation LoopbackExempt -d -n="Microsoft.MicrosoftEdge_8wekyb3d8bbwe"

Details zur Loopback-Kommunikation bei Windows Apps können im Windows Dev Center abgerufen werden.

Wenn die Installation erfolgreich war können Sie nun auch Microsoft Edge als Browser im Test verwenden.

14.2.3
WebDriver mit Safari

Zum Testen mit Safari benötigen Sie mindestens macOS ab Version 10.11 und Safari ab Version 10. Die Tests erfordern eine vorherige Einrichtung durch den Benutzer: Wählen Sie in den Safari-Einstellungen unter "Erweitert" den Punkt "Menü Entwickler in der Menüleiste anzeigen". In diesem Menü aktivieren Sie dann den Menüpunkt "Entfernte Automation erlauben". Anschließend müssen Sie noch einmalig ein Terminal-Fenster öffnen und dort den Befehl /usr/bin/safaridriver -p 0 ausführen, um die anschließende Autorisierungs-Anfrage zu bestätigen.

Hinweis Aufgrund der speziellen Sicherheitseinstellungen, die Apple seinem SafariDriver auferlegt, gibt es bei Tests mit Safari folgende Einschränkungen:

  • Tests können nur abgespielt aber nicht aufgenommen werden
  • Harte Events sind nicht möglich
  • Es ist nur eine Browser-Instanz zugelassen
14.2.4
Bekannte Einschränkungen des WebDriver Modus

Die WebDriver Anbindung an QF-Test befindet sich aktuell noch in der aktiven Entwicklung. Daher stehen leider einige Funktionen, die von der QF-Driver Anbindung bekannt sind, noch nicht zur Verfügung. In den meisten Fällen sind diese Einschränkungen dem Umfang der WebDriver Spezifikation zuzuschreiben.

  • Keine Unterstützung von Datei-Downloads und HTTP-Authentifizierungs-Dialogen.
  • Keine Möglichkeit, HTTP-Requests direkt aufzuzeichnen bzw. abzuspielen.
  • wd.getComponent(WebElement) funktioniert bisher noch nicht bei Elementen in verschachtelten Frames.
  • Events, die zum Laden einer neuen Webseite führen, werden teilweise nicht richtig aufgezeichnet.
  • Event-Synchronisierung ist teilweise verzögert.
14.3
Web-Testen ohne sichtbares Fenster

4.2+ Mit Hilfe des WebDriver-Verbindungsmodus ist es möglich, Firefox und Chrome im sogenannten "Headless"-Modus anzusteuern. Dabei wird der Browser im Hintergrund gestartet, aber ohne dabei ein sichtbares Fenster auf dem Bildschirm anzuzeigen. Alle Interaktionen mit der Webseite erfolgen im "unsichtbaren" Fenster.

Um einen bestehenden Web-Test im "Headless"-Modus auszuführen muss lediglich der Typ des Browsers im 'Web-Engine starten'-Knoten von chrome auf headless-chrome bzw. von firefox auf headless-firefox geändert werden. Dabei ist zu beachten, dass der "Headless"-Modus erst ab Chrome 60 und Firefox 57 unterstützt wird.

14.4
Emulation von Browsern in mobilen Geräten

4.2.1+ Beim Testen von Webseiten ist häufig das Benutzererleben auf mobilen Geräten wie Smartphones oder Tablets relevant, da die Webseite aufgrund einer unterschiedlichen Browserkennung ("User Agent") und spezifischen Fenstergrößen anders dargestellt wird, als im Desktop-Browser ("Responsive Design").

QF-Test unterstützt solche Szenarien über den die Emulation mobiler Browser. Dabei wird ein Dekstop-Browser (z.B. Google Chrome) in einem Modus gestartet, in welchem die Fenstergrößen und die Browserkennung den Browser eines Mobilgerätes emuliert. Google Chrome ist darüber hinaus in der Lage, spezifische Charakteristika von mobilen Browsern, wie ein angepasstes Pixel-Verhältnis bzw. eine automatische Skalierung nicht-responsiver Websiten nachzubilden.

Um einen solchen Test durchzuführen, können Sie im Schnellstart-Assistenten (siehe Kapitel 3) den Punkt "Mobile Emulation" auswählen und dort die Geräte-Parameter sowie die zu testende Webseite und weitere testspezifische Parameter angeben. QF-Test kommt mit einer großen Anzahl vordefinierter Werte für bekannte Mobilgeräte, aus denen Sie einfach über den Namen das gewünschte wählen können. Selbstverständlich ist es aber auch möglich, alle Eigenschaften manuell zu bearbeiten.