Blog

Neueste Trends beim automatisierten Testen von Webanwendungen

Byju Parameshwaran Nair

Byju Parameshwaran Nair

Aktualisiert Oktober 22, 2025
4 Minuten

Im letzten Blog haben wir das Konzept der Entwicklung von Webanwendungen mit Client-seitigen RIA-Technologien der nächsten Generation wie AngularJS/BackboneJS kennengelernt. In diesem Beitrag stellen wir Ihnen die neueste Technologie zur Automatisierung des Testens solcher Anwendungen vor. Die genannten Tools stehen im Mittelpunkt, weil sie sich als integrierte Einheit bewährt haben, obwohl auch andere ähnliche Tools entwickelt werden können.

End-to-End-Tests (e2e)

End-to-End-Tests dienen dazu, das Frontend einer funktionalen Anwendung zu testen, indem ein Browser angesteuert wird, der Seiten lädt, die Frontend-Verarbeitung von Javascript-Code durchführt, DOM-Interaktionen durchführt, Formulardaten verarbeitet, die Seite absendet und ihre Antwort verarbeitet. Ziel ist es, UI-Tests so zu automatisieren, dass ein Benutzer eine Live-Anwendung mit allen möglichen Arbeitsabläufen verwendet.

Bei Unit-Tests wird jeder kleinere Funktionscode separat und ohne Integrationspunkte getestet. Bei e2e-Tests liegt der Schwerpunkt eher auf der integrierten Endbenutzerfunktionalität.

Automatisierte Tools zum Testen von Webanwendungen

Selen

Selenium ist seit langem eine führende Technologie zur Automatisierung des Testens von Webanwendungen mit Frameworks für In-Browser- und Remote-Unit-Tests. Es automatisiert Browser, d.h. alles, was wir in Browsern tun, wie z.B. die Seitennavigation, das Anklicken von Schaltflächen, die Eingabe in Formularfelder, das Absenden von Formularen usw., kann mit Selenium automatisiert werden. Mit dem browserspezifischen In-Browser-Tool von Selenium können Sie einen Test im Browser aufzeichnen und den gespeicherten Test erneut ausführen.

Aber es gab auch Probleme mit der Browserkompatibilität, z. B. Schwierigkeiten beim Zugriff auf dynamische HTML/DOM-Elemente, die von RIA bereitgestellt werden, usw. WebDriver WebDriver ist eine Verbesserung gegenüber Selenium in dem Sinne, dass es eine neue Art der Interaktion mit den Browsern einführt und minimale Kompatibilitätsprobleme hat. Er unterstützt die meisten Programmiersprachen, nämlich Rbuy, Python, Java usw. WebDriverJS Client-seitige Javascript-basierte RIA-Anwendungen werden immer beliebter. WebDriverJS wurde eingeführt, um Javascript als die Sprache der Wahl zu handhaben. WebDriverJS ist einfach ein benutzerfreundlicher Wrapper für die WebDriver-Funktionen, die in Javascript-Testcode verwendet werden können.

WebDriverJS unterscheidet sich von anderen Tools, da es asynchron ist und die Tests über so genannte Promises abgewickelt werden. Promises sind, laienhaft ausgedrückt, ähnlich wie Callback-Mechanismen, um asynchrone Antworten zu verarbeiten. Winkelmesser Automatisiertes Testen von WebanwendungenAngularJS ist ein sehr beliebtes Javascript-Framework zur Erstellung von RIA-Anwendungen und wurde speziell zur Unterstützung von e2e- und clientseitigen Unit-Tests entwickelt. Protractor ist eine Wrapper-Bibliothek für WebDriverJS und wurde entwickelt, um problemlos mit dem Jasmine-Testframework zu arbeiten.

Protractor kann auch zum Testen von Nicht-AngularJS-Code verwendet werden. Es ist in der Lage, Code zu testen, der mit einem beliebigen Javascript-basierten Framework oder einer Bibliothek geschrieben wurde. Es ist leicht zu erlernen, läuft schnell und unterstützt das PageObject-Muster.

Beim Zugriff auf Seitenelemente ist es jedoch aufgrund der asynchronen Natur etwas schwierig zu debuggen. Wir müssen uns dann auf native WebDriverJS-Funktionsaufrufe als Workaround verlassen. Es kann einzelne e2e-Testfälle von der Eingabeaufforderung aus ausführen, benötigt aber Jasmine, um alle Testfälle in einer einzigen Ausführung zu starten.

Jasmine Jasmine ist ein Test-Framework für Tests, die mit der Sprache Javascript und in unserem Fall mit WebDriverJS geschrieben wurden. Grunt Obwohl Jasmine in der Lage ist, Testsuiten auszuführen, übernimmt Grunt die Rolle des Task-Runners, indem es das Starten und Stoppen von Tests übernimmt und mehr Konfigurationsunterstützung, Minifizierungen usw. bietet. Selenium + WebDriverJS + Jasmine + Protractor + Grunt - Ein Ökosystem Selenium und WebDriver kümmern sich um die lokalen und serverseitigen APIs für die Steuerung eines Browsers und die Handhabung des DOM und der Seitenladevorgänge, um Tests auf einer Website durchzuführen. Das Ökosystem funktioniert wie folgt:

  • Selenium Standalone Server ist so eingestellt, dass er auf einem Port für API-Aufrufe lauscht.
  • Beim Start des Tests wird eine Browser-Sitzung gestartet.
  • WebDriver wird geladen, um eine bestimmte Browsersitzung zu steuern.
  • Unterstützen Sie mehrere Browser-Sitzungen und erlauben Sie Browser-Sitzungen, die Website von einem entfernten Server zu laden.
  • Die Tests werden dann mit der Jasmine-Laufzeitumgebung ausgeführt.

Testen von Webanwendungen

Protractor ist ein Javascript-Testframework, das auf den Selenium/WebDriverJS-APIs aufbaut und uns eine einfache abstrakte Schicht zum Schreiben und Ausführen von e2e-Tests bietet.

Dieses Ökosystem macht wiederholte manuelle e2e-Tests für jede Funktionsänderung oder -erweiterung überflüssig und spart so wertvolle Entwicklungszeit. Es kann so verdrahtet werden, dass es in der Build-Automatisierung läuft, wo es eine nächtliche Suite von e2e- und Unit-Tests ausführt und Fehler meldet, wodurch Entwickler Zeit sparen. Berichte generieren Testberichte können durch die Integration von Protractor mit der Jasmine Reporter API erstellt werden. Der Bericht wird normalerweise im XML-Format erstellt und kann mit XSLT in HTML konvertiert werden. Referenzen End-to-End-Tests mit Protractor

e2e-Tests mit Webdriverjs Jasmine

Protractor-Tests mit angularen und nicht angularen Websites [contact-form-7 id="21032" title="Das Rätsel des Scrum-Testens knacken"]

Verfasst von

Byju Parameshwaran Nair

Contact

Let’s discuss how we can support your journey.