Integration tests are an integral part of any modern web application, and regardless of which front-end or server side framework you choose, you'll likely be running Selenium tests. While Selenium tests are easy to write and execute on your local workstation, Works On My Machine™ won't get you past your CI system. Now you're stuck with two bad options, use a SaaS provider and live with slow builds or running your own Selenium Grid and managing a multitude of machines and browser versions. Rock, meet hard place, right? It doesn't have to be that way! In this talk you'll see how easy it is to setup a Selenium Grid with Docker, how easy it is to maintain, and how to extend and grow your Selenium grid to satisfy your team's needs. It's not all roses and sunshine, so you'll see some common issues presented and how to avoid them. Finally, a Selenium Grid you'll want to manage!
3. We’ll talk about
1. Options for browser testing
2. Where Docker fits in
3. What has worked for us
Agenda
You’ll learn
1. How to set it up
2. What to do (and not)
4. UI testing is time consuming
to run
Developers want fast
feedback
Business wants cross
browser testing
Current State
5. Everything is fine until you realize:
• VPN connection: slow and complicated
• Wait time: VM spin up and session creation is slow
• Cost: pay for concurrency
Option 1
Use a SaaS provider
8. Roll your own
Setup Selenium Grid using that old physical server under your desk
or use multiple virtual machines. This will work but:
• Hard to setup
• Difficult to maintain
• Infrastructure is not reusable
Option 2
15. • Easy to maintain
• Customizable at build time (build-args)
• Customizable at run time (environment variables)
Selenium Images
Versus Virtual Machines
26. • X11 Server (xvfb)
• Builtin VNC Server
(x11vnc)
• Connect and view the
running browser in the
container!
Debug Mode
27.
28. • No Internet Explorer or Safari image
• Hub and node connectivity - tricky
• Nodes can hang
Limitations and Pitfalls
Lessons learned
29. Why Docker?
• Instantaneous grid startup (<10 secs) and teardown
• Speed up execution time 2-3x vs Sass
• Parallel testing scales with your infrastructure
• Sharable infrastructure
• Cost control
Wrap up
32. Section One
1. Agenda item one
2. Agenda item two
3. Agenda item three
4. Agenda item four
5. Agenda item five
Agenda
Section Two
1. Agenda item one
2. Agenda item two
3. Agenda item three
4. Agenda item four
5. Agenda item five
35. Section One
1. Agenda item one
2. Agenda item two
3. Agenda item three
4. Agenda item four
5. Agenda item five
Alt Agenda
Section Two
1. Agenda item one
2. Agenda item two
3. Agenda item three
4. Agenda item four
5. Agenda item five
36. Lorem ipsum dolor sit amet, euismod tincidunt ut. Lorem ipsum
dolor sit amet, euismod tincidunt ut. Lorem ipsum dolor sit amet,
euismod tincidunt ut.
• Bulleted list one
• List item two
• And item number three
Body Slide Title
Subtitle if needed
37. Slide subtitle if needed
The quick brown fox jumps over the lazy dog. The quick brown fox
jumps over the lazy dog. The quick brown fox jumps over the lazy
dog.
• Bulleted list one
• List item two
• And item number three
Alt Background Body Slide
38. Lorem ipsum dolor sit amet,
euismod tincidunt ut. Lorem
ipsum dolor sit amet,
euismod tincidunt ut. Lorem
ipsum dolor sit amet,
euismod tincidunt ut.
Photo Title
39. Lorem ipsum dolor sit amet,
euismod tincidunt ut. Lorem
ipsum dolor sit amet,
euismod tincidunt ut. Lorem
ipsum dolor sit amet,
euismod tincidunt ut.
Photo Title