Hinweis: Uiveri5 ist veraltet und wird nicht weiterentwickelt. Tests, die UIVeri5 verwenden, werden aber voraussichtlich weiterhin funktionieren. Als Alternative empfehlen wir: WDIO + WDI5
openui5
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.
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.
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.