Wofür verwenden wir End-to-End-Tests?
Beim End-to-End-Testen (E2E) werden die Szenarios aus Sicht der Endnutzerperspektive durchgespielt. E2E-Tests werden am Ende des Testzyklus durchgeführt, nach Unit-, Integrations- und Systemtests.
Vor- und Nachteile der End-to-End-Tests
End-to-End-Test haben den Vorteil, dass sie händisches Frontend-Testen ersetzen können und somit systematischer alle Fälle der Nutzung abdecken können.
Nachteilig ist, dass Änderungen des Markups immer in den Tests nachgehalten werden müssen. Eine Web-App-weite Abdeckung durch E2E Tests bei vielen verschiedenen Views ist nicht realistisch. Benutzt man jedoch Frontend-Komponenten, kann man diese auf einer Test-View rendern lassen und dafür Tests schreiben, die damit dann diese Komponenten quasi seitenweit testen.
Beispielcode
Der Test
- ruft die Seite http://localhost:8080/laser/subscription/show/12428 auf,
- klickt ins Input-Feld für den Username, gibt ‚testuser‘ ein,
- klickt ins Input-Feld für das Passqwort, gibt ‚test1234‘ ein
- ruft die Seite http://localhost:8080/laser/subscription/show/12428 auf
describe('Test der Lizenz-Übersichseite', function () { it('http://localhost:8080/laser/subscription/show/12428', function () { cy.visit('http://localhost:8080/laser/login/auth') cy.get('#username').click() .type('testuser') cy.get('#password').click() .type('test1234') cy.contains('Anmelden').click() cy.visit('http://localhost:8080/laser/subscription/show/12428') }) })
Aufruf im Terminal um Cypress zu öffen
node_modules/.bin/cypress open
Aufruf im Terminal um ein Video vom eigenen Test zu erzeugen
node_modules/.bin/cypress run cypress/integration/myExamples/sample_spec.js