Automatisiertes Layout-Testing von Websites mit Galen

Die Implementierung von Tests in Softwareprojekten ist ein wichtiger Bestandteil des Entwicklungsprozesses. Dank ihrer Eigenschaften lassen sie sich parallelisiert und auf immer gleiche Weise ausführen, ohne zusätzliche Aufwände zu verursachen. Dies erlaubt es, eine schnelle und kosteneffektive Aussage zur Qualität des Softwaresystems zu treffen, wodurch sich eine generell höhere Qualität des gesamten Softwaresystems ergibt.

Auch auf der visuellen Ebene sind Tests wichtig. So gibt es auf Kundenseite meist klare Anforderungen und Vorgaben an das Layout einer Anwendung oder Website sowie auch an deren Unterstützung für verschiedene Endgeräte, Browser und Auflösungen. Diese Anforderungen zu testen, ist manuell ein enormer Aufwand und auch die teilautomatisierte Umsetzung gestaltet sich meist schwierig, da die aufgenommenen Screenshots der Anwendung für die verschiedenen Geräte, Browser und Auflösungen manuell verglichen werden müssen.

Das Galen-Framework soll diese Lücke schließen, indem es dem Anwender erlaubt, seine Testanforderungen in eigenem Programmcode zu formulieren und so eine vollautomatisierte Testabdeckung für das Layout einer Anwendung umzusetzen.

Das Galen-Framework

Galen ist ein Framework zum automatisierten Testen des Layouts einer Website. Durch seine Kompatibilität zu Selenium Grid, lässt es sich in verschiedene Testlandschaften wie z. B. BrowserStack integrieren. Werden also mit BrowserStack verschiedene Tests zu unterschiedlichen Browsern, Devices und Auflösungen durchgeführt, können die Layout-Tests mit Galen parallel dazu durchlaufen werden.

Key-Features

Eine Übersicht der Key-Features zu Galen ist nachfolgend dargestellt:

  • Integration in Selenium Grid
    Eine Integration in andere Test-Tools wie BrowserStack oder Sauce Labs ist möglich
  • Responsive Design
    Das Design von Galen berücksichtigt stark die Bedeutung von Responsive Design und soll die Implementierung dieser Tests vereinfachen
  • Eine verständliche Sprache für Nichtanwender, Einsteiger und Profis
    Über die Galen Specs Language lassen sich komplexe Anforderungen an ein Layout stellen, die unterschiedliche Browser-Fenstergrößen einschließen

Human Readable and Advanced Syntax

Basic Syntax

Mit der Galen Specs Language können komplexe Layouts beschrieben werden. Dies betrifft neben angezeigten Controls auch die Definition verschiedener Bildschirmgrößen und Browser. Ein Vorteil der Sprache ist die einfache syntaktische Definition der Testanforderungen und die einfache Lesbarkeit für Menschen, die nicht mit dem Framework und seiner Syntax vertraut sind. » Galen Specs Language Guide

Galen Basic Syntax
Abbildung 1: Basic Syntax (Quelle: galenframework.com)

Fortgeschrittene Techniken

Für fortgeschrittene Anwender gibt es verschiedene Techniken, die bei der Optimierung der Spezifikation helfen können. So bietet das Framework unter anderem umfangreiche Funktionalitäten für die Erstellung visueller Tests wie Bildvergleiche und Farbschemaverifizierung. » Galen Specs Language Guide

Galen Advanced Syntax
Abbildung 2: Advanced Syntax (Quelle: galenframework.com)

Testen für Profis

Geübte Anwender haben außerdem die Möglichkeit, eigene und komplexere Ausdrücke zu formulieren, um so mehrere Testabfragen in einer einzigen Zeile zu formulieren. Auf diese Weise können klare Spezifikationen sowie gut wartbarer und zuverlässiger Testcode geschrieben werden. » Galen Extras

Galen Testcode
Abbildung 3: Test like a Pro (Quelle: galenframework.com)

Testdokumentation

Für die Dokumentation der Testergebnisse stellt das Framework drei Features bereit:

Error Reporting

  • Galen generiert einen HTML Testbericht
  • Dieser beinhaltet alle Testobjekte einer Seite
  • Beispiel

Screenshots

  • Bei fehlerhaften Tests markiert das Framework das betreffende Element
  • Dies vereinfacht die Fehlersuche
  • Beispiel

Image Comparison

  • Für die visuelle Kontrolle erstellt Galen Bildvergleiche
  • Nicht übereinstimmende Bereiche werden markiert
  • Beispiel

Unterstützung der Testdurchführung in verschiedenen Sprachen

Die Implementierung der Tests ermöglicht Galen in drei Sprachen. Die bereits bekannte Basic Syntax sowie mit JavaScript und Java.

Basic Syntax

Die Basic Syntax soll den schnellen, aber trotzdem mächtigen Einstieg ermöglichen. Mit ihr lassen sich relativ einfach verschiedene Browser wie Firefox, Chrome oder der Internet Explorer für die Testausführung auswählen oder auf Selenium Grid umstellen.

Für den Zugriff auf schwieriger zu erreichende Seiten, welche zum Beispiel durch Sicherheitsmechanismen geschützt sind, gibt es die Möglichkeit, eigenes JavaScript auf der Client-Seite zu implementieren. Durch die Implementierungen von eigenem JavaScript auf der Testseite kann die Website für die durchzuführenden Layout-Prüfungen vorbereitet werden. » Galen Test Suite Syntax

Galen Test Execution Basic Syntax
Abbildung 4: Test Execution Basic Syntax (Quelle: galenframework.com)

JavaScript

Durch die Verwendung von JavaScript steht es dem Anwender frei, sein eigenes Test-Framework zu entwickeln und so komplexe Sachverhalte abzubilden. Das Galen Framework bietet dabei die vier folgenden Funktionalitäten zur Implementierung von JavaScript-Tests.
» JavaScript Tests Guide

  • Die Implementierung von Behandlungen vor und nach den Testvorgängen
  • Das Filtern und die Neuordnung von Testsequenzen
  • Die Verwaltung benutzerdefinierter Data Provider
  • Die Parametrisierung von Tests durch Arrays oder Maps
Galen Test Execution JavaScript Tests
Abbildung 5: Test Execution JavaScript Tests (Quelle: galenframework.com)

Java

Die eigentliche Sprache, die Galen zugrunde liegt, ist Java. Aus diesem Grund versteht es sich dann natürlich auch, dass für Java eine API zur Verfügung steht und dass die Java Virtual Machine zur Ausführung der Tests installiert sein muss. Die Java-API kann über das Central Maven Repository in Maven-Projekte eingebunden werden. » Git Beispielprojekt

Galen Test Execution Java API
Abbildung 6: Test Execution Java API (Quelle: galenframework.com)

Fazit

Die Durchführung von Layout-Tests ist eine aufwendige Aufgabe, die mit zunehmender Anzahl an Tests viele Ressourcen in Softwareprojekten kosten kann. Mit dem Galen Framework existiert eine Lösung der automatischen Durchführung und Dokumentation von Layout-Tests, die zudem eine komfortable Integration in bestehende seleniumbasierte und andere Teststrategien bietet. Durch ihre einfache und menschenlesbare Syntax ist sie für nahezu alle Projektteilnehmer verständlich und unterstützt somit die rollenübergreifende Zusammenarbeit im Softwareprojekt.

Dieser Beitrag wurde verfasst von: