Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share...
-
Upload
augustine-stephens -
Category
Documents
-
view
230 -
download
1
Transcript of Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share...
![Page 1: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/1.jpg)
Developing for Selenium Grid
Dima Kovalenko
![Page 2: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/2.jpg)
![Page 3: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/3.jpg)
What is Selenium Grid?
• Distribute• Parallelize• Share resources
![Page 4: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/4.jpg)
![Page 5: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/5.jpg)
Distribute
![Page 6: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/6.jpg)
Distribute
• 1 computer vs many
![Page 7: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/7.jpg)
![Page 8: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/8.jpg)
![Page 9: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/9.jpg)
Node Config JSON
![Page 10: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/10.jpg)
![Page 11: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/11.jpg)
Parallelize
![Page 12: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/12.jpg)
![Page 13: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/13.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/14.jpg)
Share Resources
![Page 15: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/15.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/16.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/17.jpg)
Proxies
![Page 18: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/18.jpg)
![Page 19: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/19.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/20.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/21.jpg)
Overwriting Default Proxy
![Page 22: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/22.jpg)
Overwriting Default Proxy
![Page 23: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/23.jpg)
Why video record?
![Page 24: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/24.jpg)
![Page 25: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/25.jpg)
![Page 26: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/26.jpg)
![Page 27: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/27.jpg)
Before Command
![Page 28: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/28.jpg)
![Page 29: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/29.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/30.jpg)
![Page 31: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/31.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/32.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/33.jpg)
![Page 34: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/34.jpg)
Capability Matcher
![Page 35: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/35.jpg)
Capability Matcher
• matches()– Returns bolean
![Page 36: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/36.jpg)
![Page 37: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/37.jpg)
Config JSON
![Page 38: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/38.jpg)
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.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/39.jpg)
![Page 40: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/40.jpg)
![Page 41: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/41.jpg)
![Page 42: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/42.jpg)
Compiling into JARs
• Maven• Javac• Etc
![Page 43: Developing for Selenium Grid Dima Kovalenko. What is Selenium Grid? Distribute Parallelize Share resources.](https://reader035.fdocuments.net/reader035/viewer/2022062321/56649e725503460f94b71adf/html5/thumbnails/43.jpg)
Classpath