YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

- Björn Wilmsmann -

Acceptance Testing/ Automatisierte _ Web _ App _ Tests _ mit _ CasperJS /

Page 2: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

CasperJS

• Frontend Testing für Web Applikationen

• Automatisierte Acceptance Tests

• Headless Browser Testing für die Kommandozeile

• HTML5 und JavaScript

Page 3: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Test-Driven Development

Page 4: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Unit Tests

• Individuelle Source Code Einheiten

• Kleinste testbare Einheit

• Isoliertes Testen kleiner Einheiten

Page 5: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Integration Tests

• Testen von Modulen

• Test der Zusammenarbeit einzelner Komponenten

• Zwischen Unit Tests und Acceptance Tests

Page 6: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Acceptance Tests

• Sind die funktionalen Anforderungen an eine Software erfüllt?

• User Stories

• High Level Tests

Page 7: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Continuous Integration

Page 8: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

PhantomJS

• Headless WebKit Browser

• JavaScript Umgebung ähnlich Node.js

• Voller HTML5 Funktionsumfang

• Scripting in JavaScript und CoffeeScript

• http://phantomjs.org

Page 9: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

WebKit

• Konqueror

• Safari

• Chrome

Page 10: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Anwendungsfälle

Page 11: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Screenshots

• Rendering von Websites

• Export als PNG, JPEG, GIF oder PDF

• Unterstützt SVG und Canvas

Page 12: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Automatisierung

• Makros

• Automatisierung von wiederkehrenden Aufgaben

• Cronjob für Websites

• Unterstützt JavaScript

Page 13: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Monitoring

• Untersuchung von Datenverkehr

• onResourceRequested, onResourceReceived

• Export in HAR (HTTP Archive) Format

Page 14: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Code Beispiele

Page 15: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

PhantomJS ist kein Test Framework

Page 16: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Testing

• Headless Testing von Websites

• Test Frameworks

• Capybara (via Poltergeist)

• Mocha

• …

• CasperJS

Page 17: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

CasperJS

• Nutzt PhantomJS als Grundlage

• Testing Framework

• Scripting in JavaScript und CoffeeScript

• http://casperjs.org

Page 18: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Funktionsumfang

• Navigation Scripting

• Formulare ausfüllen & abschicken

• DOM Manipulation

• Asserts & xUnit Ergebnisse

Page 19: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Test Suites

• Vollständige Testabläufe

• Strukturierte Tests

• Set up and tear down

Page 20: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

DOM Manipulation

• DOM Selectors

• CSS3

• XPath

Page 21: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Events

• Event Handler ähnlich Node.js

• Filter

• http://casperjs.org/events-filters.html

Page 22: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Hilfsfunktionen

• Utils: Hilfsfunktionen / JavaScript Erweiterungen

• Client Side Utils

• Logging

• Debugging

• Vererbung (via Prototypes)

Page 23: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Down to business

Page 24: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Und cross-browser Kompatibilität?

Page 25: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Slimer.js

• Nutzt Gecko (Mozilla) statt WebKit

• Wird von CasperJS seit 1.1-beta1 ebenfalls unterstützt

• http://slimerjs.org/

Page 26: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

TrifleJS

• Headless Internet Explorer (via .NET API)

• API analog PhantomJS

• http://triflejs.org/

Page 27: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Tools

Page 28: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Resurrectio

• Chrome Erweiterung

• Aufnahme von Scripts und Abläufen

• https://github.com/ebrehault/resurrectio

Page 29: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

SpookyJS

• CasperJS aus Node.js fernsteuern

• https://github.com/WaterfallEngineering/SpookyJS

Page 30: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

PhantomFlow

• Visualisierung von Nutzerführung

• https://github.com/Huddle/PhantomFlow

Page 31: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

PhantomCSS

• Visual diff für CSS

• https://github.com/Huddle/PhantomCSS

Page 32: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Weitere Links

• https://github.com/BjoernKW/CasperJS_presentation

• http://blog.codeship.io/2013/03/07/Smoke-Testing-with-Casperjs.html

Page 33: Acceptance Testing - Automatisierte Web App Tests mit CasperJS

Björn WilmsmannStefan-George-Str. 15a 46117 Oberhausen !

Website: http://wilmsmann.de eMail: [email protected] Tel.: +49-151-25209060


Related Documents