+ All Categories
Home > Documents > Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share...

Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share...

Date post: 29-Dec-2015
Category:
Upload: augustine-stephens
View: 223 times
Download: 1 times
Share this document with a friend
Popular Tags:
43
Developing for Selenium Grid Dima Kovalenko
Transcript
Page 1: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Developing for Selenium Grid

Dima Kovalenko

Page 2: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 3: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

What is Selenium Grid?

• Distribute• Parallelize• Share resources

Page 4: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 5: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Distribute

Page 6: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Distribute

• 1 computer vs many

Page 7: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 8: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 9: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Node Config JSON

Page 10: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 11: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Parallelize

Page 12: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 13: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Session ID

• Every test has a session unique session id– 3e6f47aa-16ec-4951-8c1f-3b17a4405247

• Session ID is only way to identify each test request

Page 14: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Share Resources

Page 15: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Share Resources

• Multiple teams can use same browsers• No need to purchase individual computers for

each team

Page 16: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Getting Source Code

• Git clone– https://github.com/SeleniumHQ/selenium

• Open with– Inteli J– Eclipse

Page 17: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Proxies

Page 18: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 19: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

DefaultRemoteProxy.java

• Passes commands from test• Interesting methods

• getNewSession()• beforeSession()• afterSession()• beforeCommand()• afterCommand()• beforeRelease()

Page 20: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Selenium Grid Extras

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

Page 21: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Overwriting Default Proxy

Page 22: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Overwriting Default Proxy

Page 23: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Why video record?

Page 24: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 25: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 26: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 27: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Before Command

Page 28: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 29: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Adding New Proxy

• Command Line– “proxy” argument

• Config JSON

Page 30: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 31: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Special Note

• Proxy to use config is defined on the node• The HUB needs to be in class of the HUB• Runs only on HUB instance!• Multiple proxies

Page 32: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Prioritizers

• Default FIFO– First In, First Out

• Interface Class

Page 33: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 34: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Capability Matcher

Page 35: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Capability Matcher

• matches()– Returns bolean

Page 36: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 37: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Config JSON

Page 38: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Servlet

• Allows user to implement custom HTTP endpoints

• Can be any valid HTTP format– HTML– JSON– XML

Page 39: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 40: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 41: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.
Page 42: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Compiling into JARs

• Maven• Javac• Etc

Page 43: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.

Classpath


Recommended