Top Banner
Managing Large Selenium Grid Dima Kovalenko (@dimacus) Jack Calzaretta
56

Managing Large Selenium Grid

Jan 14, 2015

Download

Education

dimakovalenko

Presentation for 2014 Selenium Camp In Kiev

Link to audio of the presentation
http://www.youtube.com/watch?v=OrtR_k1biOg&feature=youtu.be
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Managing Large Selenium Grid

Managing Large Selenium Grid

Dima Kovalenko (@dimacus)Jack Calzaretta

Page 2: Managing Large Selenium Grid
Page 3: Managing Large Selenium Grid

http://seleniumcamp.com

Page 4: Managing Large Selenium Grid
Page 5: Managing Large Selenium Grid
Page 6: Managing Large Selenium Grid
Page 7: Managing Large Selenium Grid
Page 8: Managing Large Selenium Grid
Page 9: Managing Large Selenium Grid

VMs

Page 10: Managing Large Selenium Grid
Page 11: Managing Large Selenium Grid
Page 12: Managing Large Selenium Grid

www.xenproject.org

Page 13: Managing Large Selenium Grid

Open Source

• GNU License• Free

Page 14: Managing Large Selenium Grid

Fast

• Lightweight• Windows restarts in 5 seconds• 8 Windows 7 VMs on 1 host

Page 15: Managing Large Selenium Grid
Page 16: Managing Large Selenium Grid
Page 17: Managing Large Selenium Grid

Stable

• 1.5 years with 0 maintenance

Page 18: Managing Large Selenium Grid

Controls

• Complete control from linux shell

Page 19: Managing Large Selenium Grid
Page 20: Managing Large Selenium Grid

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

Page 21: Managing Large Selenium Grid

Example Config

Page 22: Managing Large Selenium Grid
Page 23: Managing Large Selenium Grid
Page 24: Managing Large Selenium Grid
Page 25: Managing Large Selenium Grid

Network

• Bridge network• Easy network setup

Page 26: Managing Large Selenium Grid

GUI Access

• VNC• Each Windows instance listens on different

port

Page 27: Managing Large Selenium Grid
Page 28: Managing Large Selenium Grid

Disadvantages

• Need some linux experience• No GUI• Does not have as many features as VMWare• A lot of initial work

Page 29: Managing Large Selenium Grid

Proxy

Page 30: Managing Large Selenium Grid

Problem

• Many computers• Many datacenters• A lot of firewalls

Page 31: Managing Large Selenium Grid
Page 32: Managing Large Selenium Grid
Page 33: Managing Large Selenium Grid
Page 34: Managing Large Selenium Grid
Page 35: Managing Large Selenium Grid
Page 36: Managing Large Selenium Grid

Reverse tunnel

• SauceConnect

Page 37: Managing Large Selenium Grid
Page 38: Managing Large Selenium Grid

Reverse tunnel

• SauceConnect• Slow

Page 39: Managing Large Selenium Grid
Page 40: Managing Large Selenium Grid

Reverse tunnel

• SauceConnect• Slow• Can be Unstable• Machine to port nightmare

Page 41: Managing Large Selenium Grid

Proxy Tunnels

Page 42: Managing Large Selenium Grid

Browser Proxy Settings

• Set Browser to use 1 port• Set white list of reachable assets

Page 43: Managing Large Selenium Grid
Page 44: Managing Large Selenium Grid
Page 45: Managing Large Selenium Grid

JVM

• -Dhttp.proxyHost=• -Dhttp.proxyPort=• Java -Dhttp.proxyHost=123 -

Dhttp.proxyPort=123 –jar selenium.jar –role hub

Page 46: Managing Large Selenium Grid
Page 47: Managing Large Selenium Grid

GridExtras

• https://github.com/groupon/Selenium-Grid-Extras

Page 48: Managing Large Selenium Grid

Goal

• Stabilize OS in Grid• Give control over grid nodes

Page 49: Managing Large Selenium Grid
Page 50: Managing Large Selenium Grid

Tie Into Hub

• DefaultProxy class• Pre/After Session hook

Page 51: Managing Large Selenium Grid
Page 52: Managing Large Selenium Grid

Status Servlet

• Added new servlet for node status• Json return

Page 53: Managing Large Selenium Grid
Page 54: Managing Large Selenium Grid

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..

Page 55: Managing Large Selenium Grid

Help Us out

• Java• Very friendly• https://github.com/groupon/Selenium-Grid-Ex

tras

Page 56: Managing Large Selenium Grid

Thank you

• Dima Kovalenko• @dimacus