Managing Large Selenium Grid
Dima Kovalenko (@dimacus)
Jack Calzaretta
http://seleniumcamp.com
VMs
www.xenproject.org
Open Source
• GNU License
• Free
Fast
• Lightweight
• Windows restarts in 5 seconds
• 8 Windows 7 VMs on 1 host
Stable
• 1.5 years with 0 maintenance
Controls
• Complete control from linux shell
Controls
• Complete control from linux shell
• Making new VMs by copy/paste
• Windows info stored in text file
• Can use any VCS to store configs
Example Config
Network
• Bridge network
• Easy network setup
GUI Access
• VNC
• Each Windows instance listens on different
port
Disadvantages
• Need some linux experience
• No GUI
• Does not have as many features as VMWare
• A lot of initial work
Proxy
Problem
• Many computers
• Many datacenters
• A lot of firewalls
Reverse tunnel
• SauceConnect
Reverse tunnel
• SauceConnect
• Slow
Reverse tunnel
• SauceConnect
• Slow
• Can be Unstable
• Machine to port nightmare
Proxy Tunnels
Browser Proxy Settings
• Set Browser to use 1 port
• Set white list of reachable assets
JVM
• -Dhttp.proxyHost=
• -Dhttp.proxyPort=
• Java -Dhttp.proxyHost=123 -
Dhttp.proxyPort=123 –jar selenium.jar –role
hub
GridExtras
• https://github.com/groupon/Selenium-Grid-
Extras
Goal
• Stabilize OS in Grid
• Give control over grid nodes
Tie Into Hub
• DefaultProxy class
• Pre/After Session hook
Status Servlet
• Added new servlet for node status
• Json return
Features
• Turn on/off IE Protected mode
• Update Webdriver
• Update Chrome Driver
• Update IEDriver
• Kill Any Browser
• Check any OS Port
• Kill anything on a given port
• Reboot OS
• Take OS Screenshot
• Etc..
Help Us out
• Java
• Very friendly
• https://github.com/groupon/Selenium-Grid-
Extras
Thank you
• Dima Kovalenko
• @dimacus

Managing Large Selenium Grid