grid router – scalable and fault tolerant solution for selenium grid

35
Grid Router scalable and fault tolerant solution for grid Mikhail Levin, Y andex https://github.com/seleniumkit/gridrouter https://github.com/seleniumkit/selenograph

Upload: mikhail-levin

Post on 15-Apr-2017

821 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid Router – scalable and fault tolerant solution for grid

Mikhail Levin, Yandexhttps://github.com/seleniumkit/gridrouterhttps://github.com/seleniumkit/selenograph

Page 2: Grid Router – scalable and fault tolerant solution for Selenium grid

Requirements for large Selenium grid

Page 3: Grid Router – scalable and fault tolerant solution for Selenium grid

3

Selenium HubSelenium Node

Selenium Node

Selenium Node

Page 4: Grid Router – scalable and fault tolerant solution for Selenium grid

4

Selenium HubSelenium Node

Selenium Node

Selenium Node

〉Reliability

〉Sacalability

〉Standart components

〉Access and resources management

Page 5: Grid Router – scalable and fault tolerant solution for Selenium grid

Balance It!

Page 6: Grid Router – scalable and fault tolerant solution for Selenium grid

Client side balancing

Selenium Hub

Selenium Hub

Selenium Hub

Selenium Hub

@test + browsers.xml

Page 7: Grid Router – scalable and fault tolerant solution for Selenium grid

Selenium Hub

Selenium Hub

Selenium Hub

Selenium Hub

@test Runtime

browsers.xml

Client side balancing

Page 8: Grid Router – scalable and fault tolerant solution for Selenium grid

Selenium Hub

Selenium Hub

Selenium Hub

Selenium Hub

@test Runtime

browsers.xml

Not standart

Client side balancing

Page 9: Grid Router – scalable and fault tolerant solution for Selenium grid

PyTestJs+WebdriverIO

JunitJS+wd

KarmaJenkins

TeamCityAQuA

etc

Page 10: Grid Router – scalable and fault tolerant solution for Selenium grid

Distributed selenium grid

Standart user API

!

Reliability and scalability

!

Access and resources management

Page 11: Grid Router – scalable and fault tolerant solution for Selenium grid

Tests

Distrubuted selenium hub

Node

Node

Node

Hub

Hub

Hub

Router/Balancer

Standart API

Page 12: Grid Router – scalable and fault tolerant solution for Selenium grid

〉Any number of heads

〉Any amount of browsers

〉No single point of failure

Fix size

Reliability and scalability

Page 13: Grid Router – scalable and fault tolerant solution for Selenium grid

Selenium Hub

Selenium Hub

Selenium Hub

Selenium Hub

@test Runtime

browsers.xml

Standrart API + scalability

Page 14: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid-Router

Hub

Hub

HubTests Grid-Router

Grid-Router

Hub

Hub

Hub

SLB

Standrart API + scalability

Page 15: Grid Router – scalable and fault tolerant solution for Selenium grid

SessionID magic5277a32df29c468653b5a6a7106eb91346e51aeb-c800-401e-1de6-3c9e52bb0831

46e51aeb-c800-401e-1de6-3c9e52bb0831

Hub location

Grid-Router

SLB

Grid-Router Grid-Router

Hub

Selenium sessionID

Page 16: Grid Router – scalable and fault tolerant solution for Selenium grid

Hub configuration

Openstack VM - 2 core, 4Gbubuntu

Hub

xvfbNode + 1

xvfbNode + 1

… 5

newSessionWaitTimeout : 10000

Page 17: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid-Router

Hub

Hub

HubTests Grid-Router

Grid-RouterHub

Hub

Hub

SLB

Standrart API + scalability

Page 18: Grid Router – scalable and fault tolerant solution for Selenium grid

Access and resources management

Quota_х.xml !

Basic http auth http://login:[email protected]:4444/wd/hub !

RouteServlet !

ProxyServlet

Page 19: Grid Router – scalable and fault tolerant solution for Selenium grid

MyQuota.xml

Page 20: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid Router

Simple !

Join several hubs in one entry point !

Powerful !

With access management !

Scalable and reliable

Page 21: Grid Router – scalable and fault tolerant solution for Selenium grid

Further development

Page 22: Grid Router – scalable and fault tolerant solution for Selenium grid

Further development

Speed of search for available node !

Quoting by treads !

Reducing operational coasts !

User interface

Page 23: Grid Router – scalable and fault tolerant solution for Selenium grid

Further development

Grid Router

Selenograph

+ hub status + browser availability + sessions amount + web front

+

Page 24: Grid Router – scalable and fault tolerant solution for Selenium grid

Selenograph

Page 25: Grid Router – scalable and fault tolerant solution for Selenium grid

Further development

Grid Router

Selenograph

+ sessions amount + web front

+

+

Page 26: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid Router Selenograph

Page 27: Grid Router – scalable and fault tolerant solution for Selenium grid

«Difficult» browsers

Page 28: Grid Router – scalable and fault tolerant solution for Selenium grid
Page 29: Grid Router – scalable and fault tolerant solution for Selenium grid

Hardware + x86 + -gpu mesa

Main troubles 〉Appium stability 〉adb capacity 〉Broken emulators

Page 30: Grid Router – scalable and fault tolerant solution for Selenium grid

Mac Mini

Hub - ?

vm

Appium + Xcode + 1 emulator

Appium + Xcode + 1 emulator

vm

Page 31: Grid Router – scalable and fault tolerant solution for Selenium grid

Main troubles 〉Appium stability 〉Instruments stabilty 〉Speed 〉Costs

Page 32: Grid Router – scalable and fault tolerant solution for Selenium grid

https://github.com/kybu/headless-selenium-for-win

Openstack VM - 2 cores, 4Gbwindows7

Hub

virtual desktop

Node + 1

… 4

desktop

virtual desktop

Node + 1

Page 33: Grid Router – scalable and fault tolerant solution for Selenium grid

windows7

Hub

virtual desktop

Node + 1

… 4

desktop

virtual desktop

Node + 1

〉Do NOT use capability requireWindowFocus=true 〉switch off drug&drop 〉switch off spellchecker 〉switch off ClearType

Page 34: Grid Router – scalable and fault tolerant solution for Selenium grid

Grid Router Selenograph

Page 35: Grid Router – scalable and fault tolerant solution for Selenium grid

Mikhail Levin, Yandex

https://github.com/seleniumkit/gridrouterGrid router:

[email protected]

https://github.com/seleniumkit/selenographSelenograph:

https://github.com/seleniumkit

https://github.com/kybu/headless-selenium-for-winWin solution:

Thanks!