Managing Large Selenium Grid Dima Kovalenko (@dimacus) Jack Calzaretta
Jan 14, 2015
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-Ex
tras
Thank you
• Dima Kovalenko• @dimacus