Cypress

WAS IST CYPRESS?

Cypress ist der Newcomer im Bereich der Testautomatisierung und gewinnt immer mehr Marktanteile. Es ist ein JavaScript-basiertes Front-End-Testwerkzeug, das auch eine Open Source Version hat. Cypress verwendet das Mocha Framework, ein funktionsreiches JavaScript-Testframework, welches sowohl auf als auch im Browser läuft. Auf diese Weise werden asynchrone Tests einfach und möglich gemacht. Cypress bringt zahlreiche integrierte Features mit und bietet viele weitere Vorteile für Softwareentwickler und Testspezialisten. 

Tester, Entwickler und QA-Ingenieure können mit Cypress:   

  • Tests einrichten  
  • Tests schreiben  
    • End-to-End-Tests: ermöglichen das Testen von dem gesamten Ablauf einer Web Applikation aus der Endbenutzersicht 
    • Integration-Tests:  ermöglichen Zugriff und Überprüfung der Ergebnisse der API-Calls zwischen Web Browser und verwendeten BackEnd Systemen 
    • Unit-Testsermöglichen isolierte Tests der Web Oberflächen ohne Back-End durch das “”Mocking von APICalls”
  • Tests durchführen und debuggen 
  • Tests auswerten (Integriertes Reporting mit Screenshots) 

Eine umfangreiche Definition von Cypress finden Sie hier: https://docs.cypress.io/guides/overview/why-cypress.html#In-a-nutshell

 

Funktionsweise und Architektur 

  • Cypress setzt sich aus einem kostenlosen, quelloffenen, lokal installierten Test Runner und einem Dashboard Service zur Aufzeichnung der Tests zusammen. 
  • Die Tests laufen innerhalb von einem Browser, dadurch wird eine hohe Teststabilität gepaart mit hoher Test-Durchführungsgeschwindigkeit ermöglicht. 
  • Es werden automatische Aufzeichnungen mithilfe von SUT Snapshots angelegt, die für die Fehleranalyse bequem zur Hilfe gezogen werden können. 
  • Darauffolgend können aufgetretene Fehler leicht durch Werkzeuge wie Developer Tools debuggt werden.  
  • Cypress wartet automatisch auf Befehle, sodass das Einfügen von Sleeps and Waits nicht nötig ist.  
  • Der Netzwerkverkehr kann beliebig gesteuert und gemockt werden, so dass ein u. U. noch nicht implementierter Backend-Service u.U. simuliert werden kann (Mocks und Stubs) 
  • Die gesamte Testpalette wird einfacher, schneller, fehlerfreier und allgemein zuverlässiger ausgeführt, was einen großen Vorteil gegenüber Seleniumdarstellt.  

 

VOR- UND NACHTEILE 

Vorteile  

  • Unabhängig von SeleniumWebDriver einsetzbar 
  • Einfache Einrichtung und Bedienung 
  • Hohe Stabilität und Test-Durchführungsgeschwindigkeit 
  • Keine explizite Sleeps and Waits benötigt 
  • Einfaches Debugging und Analyse der Fehler 
  • Unterstützung von API Mocking und Zugriffe auf HTTP Kommunikation 

 

Nachteile  

  • CrossBrowser Tests nur eingeschränkt möglich 
  • Multi-Tab und Multi-Session Tests nicht möglich 
  • Parallele Tests werden nur über das Cypress Dashboard verwaltet 
  • Fehlende Möglichkeiten des expliziten Wartens in komplexen Use Cases problematisch 

 

Cypress vs. Selenium

Ein weiteres Testwerkzeug, das oft mit Cypress in Verbindung gebracht wird, ist Selenium.  

Beide Tools sind Automatisierungsframeworks, die für Testen von Webanwendungen geeignet sind. Während Selenium eine seit über 10 Jahren auf dem Markt etablierte Testlösung ist, gilt Cypress als Newcomer, welcher sich aber rasant entwickelt. Die zwei Technologien unterscheiden sich des Weiteren grundlegend im Hinblick auf ihre Infrastruktur, Features und Beschränkungen. Unten finden Sie einen kurzen Überblick über die Schlüsselunterschiede beider Technologien:   

 

Selenium 

  • Automatisierung von Cross-Browser Web Testsinkl. Interaktion mit Web Browsern von außen 
  • Language Bindings für so gut wie alle Programmier-Sprachen verfügbar wie z.B.: Java, JavaScript, C#, Python etc. 
  • Befehle können von der Testumgebung am gewünschten Browser auf einer lokalen oder entfernten Umgebung wie Chrome, Firefox, Edge oder Safari gesendet werden  
  • Vollkommen quelloffen, verwaltet durch Open Source Foundation 
  • Nutzung von Cross-Browser Cloud Services wie BrowerStackund SauceLabsmöglich 
  • Grundlage für Testframeworks (Protractor, WebDriverIO etc.) und mobile Anwendungen (Appium) 

 

Cypress 

  • Automatisierung von Webanwendungen aus dem Browser heraus 
  • Sprache: nur JavaScript  
  • Skripte für Web-Testautomatisierung in der de-facto Web-Sprache JavaScript  
  • Testskripte werden zum Web Browser lokal übertragen und können von dort aus höchst effizient ausgeführt werden und mit der aktiven Webseite per JavaScript interagieren. 
  • Unterstützung von MochaTestframeworkmit Mocha-Syntax 

 

Weitere Informationen unter:https://www.perfecto.io/blog/cypress-vs-selenium-whats-right-cross-browser-testing-solution-you

 

VERWANDTE THEMEN