UIVeri5: Ihr Leitfaden für End-to-End-Tests von UI5-Anwendungen (E2E)

openui5

Hinweis: Uiveri5 ist veraltet und wird nicht weiterentwickelt. Tests, die UIVeri5 verwenden, werden aber voraussichtlich weiterhin funktionieren. Als Alternative empfehlen wir: WDIO + WDI5

openui5openui5
Das OpenUI5 Logo.

Was ist UIVeri5?

UIVeri5 ist ein umfassendes Framework für End-to-End-Tests (E2E) von Anwendungen, die auf UI5 basieren. Es nutzt WebDriverJS, um einen realen Browser zu steuern und mit Ihrer Anwendung so zu interagieren, wie es ein echter Benutzer tun würde. UIVeri5 ist stark von Protractor inspiriert und bietet die meisten (und noch mehr) seiner Vorteile für UI5-Anwendungen. Die Funktionalität von UIVeri5 erstreckt sich über klassische Unit-Tests hinaus und ermöglicht umfassende UI-Tests.

Die Vorteile von UIVeri5

  • Automatische Synchronisation: UIVeri5 synchronisiert sich automatisch mit dem Rendering der UI5-App. Dies macht explizite Wartezeiten und Sleep-Befehle in Ihren Tests überflüssig. Ihre Tests sind von Grund auf zuverlässig konzipiert.
  • Synchrone Testentwicklung: Tests werden in einer synchronen Art und Weise geschrieben. Keine Callbacks, keine Promise-Verkettungen. Das macht die Entwicklung und Wartung sehr einfach.
  • Volle Leistung: Profitieren Sie von der vollen Leistungsfähigkeit von WebDriverJS, Protractor und Jasmine – Deferred Selectors, Custom Matchers, Custom Locators.
  • Control Locators: Die Control Locators (deklarative OPA5 Matchers) ermöglichen das Auffinden und Interagieren mit UI5 Controls.
  • Unabhängigkeit: UIVeri5 ist unabhängig von der Testbarkeit in Anwendungen und funktioniert auch mit autorefreshing Views, Resizing Elements und animierten Übergängen.
  • Deklarative Authentifizierung: Ermöglicht die deklarative Konfiguration von Authentifizierungsabläufen über OAuth2-Provider usw.
  • Flexibilität: Konsolenbedienung, CI-ready, vollständig konfigurierbar oder IDE-Integration.
  • Breite Browserunterstützung: UIVeri5 deckt die gesamte UI5 Browser Matrix ab: Chrome, Firefox, IE, Edge, Safari, iOS, Android.
  • Cloud-Integration: Funktioniert mit Browser Cloud Providern wie SauceLabs.
  • Test Recorder Integration: Nutzen Sie generierte Code-Snippets aus dem Test Recorder, der in jede UI5-App integriert ist (ab UI5 1.74).
  • Open Source: Open-Source, kann angepasst und modifiziert werden, um Ihre spezifischen Anforderungen zu erfüllen.
Weiterlesen >>  G Data oder Bitdefender: Welches ist das bessere Antivirus für Android? Ein umfassender Ausdauertest

Der UI5 Test Recorder vereinfacht die Testentwicklung.

Anforderungen

  • Node.js und npm (Node Package Manager) müssen installiert sein.
  • Ein aktueller Browser (Chrome, Firefox, etc.) ist erforderlich.

Konfiguration

UIVeri5 verwendet eine deklarative Konfiguration in einer conf.js Datei. Die Konfiguration kann über Kommandozeilenargumente überschrieben werden. Alle Konfigurationsoptionen werden in der Konfiguration erläutert. Die Konfigurationsdatei ermöglicht die Anpassung von Browser, Basis-URL und weiteren Testeinstellungen.

Installation

Globale Installation:

$ npm install @ui5/uiveri5 -g

Verwendung

Einen Test erstellen

Erstellen Sie einen Ordner, der Ihre Test- und Konfigurationsdateien enthält. UIVeri5 verwendet Jasmine als Test Runner, daher befindet sich der Test in einer spec.js Datei. Platzieren Sie die deklarative Konfiguration in der conf.js Datei.

  • conf.js

    exports.config = {
        profile: 'integration',
        baseUrl: 'https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/master-detail/webapp/test/mockServer.html',
    };
  • masterdetail.spec.js

    describe('masterdetail', function() {
        it('should load the app', function() {
            expect(browser.getTitle()).toBe('Master-Detail');
        });
    
        it('should display the details screen', function() {
            element(by.control({
                viewName: 'sap.ui.demo.masterdetail.view.Master',
                controlType: 'sap.m.ObjectListItem',
                properties: {
                    title: 'Object 11'
                }
            })).click();
        });
    
        it('should validate line items', function() {
            expect(element.all(by.control({
                viewName: 'sap.ui.demo.masterdetail.view.Detail',
                controlType: 'sap.m.ColumnListItem'
            })).count()).toBe(2);
        });
    });

Eine typische UI5 Master-Detail Anwendung.

Den Test ausführen

Öffnen Sie die Konsole im Testordner und führen Sie Folgendes aus:

$ uiveri5

Sie sehen die Testausführung in der Konsole und eine Übersicht, wenn der Test abgeschlossen ist. Überprüfen Sie den Zielordner auf einen visuellen Bericht mit Screenshots. Die Testergebnisse geben Aufschluss über den Erfolg oder Misserfolg der Testfälle.

Hinweise zur Verwendung

Standardmäßig findet UIVeri5 alle Tests im aktuellen Ordner und führt sie in einem lokal gestarteten Chrome-Browser aus. Alle diese Standardwerte können entweder in der conf.js oder durch Angabe von Kommandozeilenargumenten geändert werden.

  • Eine andere Konfigurationsdatei angeben

    $ uiveri5 ci-conf.js
  • Ausführliche Protokollierung aktivieren

    $ uiveri5 -v
  • Tests in einem anderen Browser ausführen

    $ uiveri5 --browsers=firefox
  • Tests gegen eine App ausführen, die auf einem bestimmten System bereitgestellt ist

    $ uiveri5 --baseUrl="http://<host>:<port>/app"
  • Tests gegen einen Remote Selenium Server ausführen

    $ uiveri5 --seleniumAddress="<host>:<port>/wd/hub"

Mehr erfahren

Erfahren Sie, wie Sie Ihre Tests in unserem Testing Guide erstellen.

Weiterlesen >>  SPSS Statistikprogramm: Die beste Wahl für Ihre Datenanalyse? Ein umfassender Vergleich

Support

Wenn Sie ein Problem haben, überprüfen Sie bitte unsere Liste häufiger Probleme. Wenn Sie glauben, einen Fehler gefunden zu haben, erstellen Sie bitte ein neues Github Issue. Wenn Sie eine Frage haben, stellen Sie diese bitte auf StackOverflow.

Bekannte Fehler

Keine größeren Fehler bekannt.

Release Plan

Sehen Sie, wie wir in unserem TODO fortfahren wollen.

Verwandte Projekte

Hier sammeln wir einige Projekte, die auf UIVeri5 aufbauen und es für bestimmte Anwendungsfälle zuschneiden.

Automatische Downloads

Standardmäßig lädt UIVeri5 bei lokaler Ausführung selenium.jar und/oder die jeweiligen Webdriver – chromedriver, geckodriver von ihren offiziellen Standorten herunter. Sie können das Herunterladen deaktivieren oder die Speicherorte in profile.conf.js ändern. Bei Verwendung von --seleniumAddress wird nichts heruntergeladen.

Leave a Reply

Your email address will not be published. Required fields are marked *