Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Boost your testing: End-to-End with Docker and Geb

Boost your testing: End-to-End with Docker and Geb

End to end testing is a crucial part of a tool chain to deliver high-quality releases of many software systems.

With Geb, we have a very handy wrapper to WebDriver/Selenium at our fingertips that enables us to create actually maintainable E2E test suites even for large web applications.
Combining it with Docker and a CI system enables us to be very flexible about the context we use this tests in and allow us to provoke feedback for many interesting aspects we need to know about in our system.

This talk outlines findings and experiences from projects that utilized the mentioned technologies to succeed in constantly delivering high quality releases not only in slides but also with some live-coding and demos.

Markus Schlichting

March 17, 2018
Tweet

More Decks by Markus Schlichting

Other Decks in Programming

Transcript

  1. Boost your testing: End to End with
 Docker & Geb

    
 17.03.2018 Markus Schlichting
  2. Say hello to • Groovy DSL on top of Selenium/WebDriver

    • IDE support: syntax & debugging • PageObject, Modules
  3. import geb.Browser Browser.drive { go "http://myapp.com/login" assert $("h1").text() == "Please

    Login" $("form.login").with { username = "admin" password = "password" login().click() } assert $("h1").text() == "Admin Section" }
  4. waitFor { } package demo import geb.Browser Browser.drive { go

    "https://mynethome.de/animation.html" assert title == "Animation For Waitfor Example" $("div#app button").click() waitFor { !$("div.modal").hasClass("fade-enter-active") } $("div.modal button").click() waitFor { !$("div.modal").hasClass("fade-leave-active") } }
  5. • Docker WebDriver Selenium Container • Xvfb: X virtual frame-buffer

    • Chrome, Firefox • Video recording Docker
  6. 
 • E2E do not replace other tests - they

    rather complete them • E2E should merely be seen as the final
 „does everything fit together“ • „Acceptance Tests“