About me
» Bobby Bouwmann
» @bobbybouwmann
» Developer @ Enrise - Code Cuisine
» Top contributor Laracasts
» Creator of https://markdownmail.com
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
Agenda
» What is Laravel Dusk?
» What is Browser testing?
» When to apply Browser testing?
» Why use Laravel Dusk?
» Laravel Dusk - the code
» Demo Time
» Caveats
Slide 5
Slide 5 text
Let's talk
Laravel Dusk
Slide 6
Slide 6 text
What is Laravel Dusk?
“Laravel Dusk provides an expressive, easy-to-use
browser automation and testing API. By default, Dusk
uses a standalone ChromeDriver installation.”
Slide 7
Slide 7 text
What is Browser testing?
» Testing to enruse application works as expected in
a given browser
» Test JavaScript based application functionality
» Checking links, popups, menus
Slide 8
Slide 8 text
Manual vs Automated
» Developer, product owner, user/customer clicking
around
» Automated using some tool
Slide 9
Slide 9 text
Manual Browser testing
» Clicking through application
» Testing different devices, versions and browsers
» Takes a lot of time
» Repeating work
» Multiple browser versions
» Focus on responsive
» Error prone
Slide 10
Slide 10 text
Automated Browser testing
» Continious Integration (CI)
» Testing multiple browsers, versions at the same
time
» Complex setup (we'll see about that!)
» Has to be maintained
When to apply it
» Our responsibility as developers to make sure the
project works for all users, not matter what
browser or device
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
When to apply it
» Order or payment flows
» Oauth flows with other parties
» Making screenshots/videos
» Automating processes on websites
Slide 16
Slide 16 text
No content
Slide 17
Slide 17 text
Introducing
Laravel Dusk
Slide 18
Slide 18 text
Introducing Laravel Dusk
» Browser testing for web applications
» Browser abstraction on top of PHP-Webdriver
» Doesn't require any JDK or other tool like
Selenium
» Comes with standalone ChromeDriver executable
Slide 19
Slide 19 text
History of Laravel Dusk
» Laravel 5.2: Symfony BrowserKit
» Laravel 5.4: Laravel Dusk
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
No content
Slide 23
Slide 23 text
No content
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
No content
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
No content
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
Benefits of Dusk
» Integrated with Laravel (auth, sessions, cookies)
» Running seeds per test
» Laravel syntax for writing tests
» No extra installation of JDK's or Selenium
» Can be used with Selenium or other tools as well
Slide 39
Slide 39 text
Disadvantages of Dusk
» Coupled to Laravel, harder to setup outside of the
ecosystem
» Missing a dashboard/tool to see a step-by-step
overview of the tests
Slide 40
Slide 40 text
CI integration
» php artisan serve
» chromedriver
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
Demo time
Slide 43
Slide 43 text
How to get started
» There are tools or ready to go containers for you
available!
» You can use my setup
» Start digging into this yourself!
» Laravel TestTools
Slide 44
Slide 44 text
A good use case
» Monthly payments
» Screenshots
» Sending emails