SlideShare a Scribd company logo
1 of 29
Selenium-Grid-Extras
Who Am I?
 Contributor to Selenium Grid Extras for 2 years.
 Helper on #selenium irc/slack channel (smccarthy).
 Helper on the selenium-users google group.
 SDET at GoDaddy
 @shawnmccarthy0 on Twitter
How Selenium Grid Works?
Local Computer
Hub
Chrome Node Firefox Node IE11 Node
I would like to run a test against IE11, please
Why Do We Need Grid Extras?
FirstTimeRunConfig
Grid Extras Service
Live Demo
Here are the things Grid Extras
Provides you
Auto update WebDriver,
ChromeDriver, IEDriverServer,
GeckoDriver and Grid Extras itself.
Chrome 54
Live Demo
Auto restart nodes after X amount of
test runs
Central location for node config files
Video of test runs
Live Demo
OS level screenshots
Moves mouse out of the way
Kill all processes by name
Live Demo
Auto update browser versions in the
node config file
IE Protected and Mixed Content Mode
Summary
 Auto update WebDriver, ChromeDriver, IEDriverServer, and Grid Extras
 Auto restart nodes after X amount of test runs
 Central location for node config files
 Video of test runs
 OS level screenshots
 Moves mouse out of the way
 Kill all processes by name
 Auto update browser versions in the node config file
 IE Protected and Mixed Content Mode
 Others : http://10.32.42.215:3000/api
Each machine has a URL with useful
information
SauceLabs vs Grid vs Docker vs Extras
Extras
Future Improvements
1. EdgeDriver – Download and Auto-Update
2. More control of how far to upgrade
3. Better video names
4. Allow screenshots to be downloadable via the grid extras web page.
5. Per browser videos, instead of OS level screenshots
6. Docker container for grid extras ?
7. Documentation
Contributing
Questions ?
* images used are most likely not owned by me.
Gitter : https://gitter.im/groupon/Selenium-Grid-Extras
Github : https://github.com/groupon/Selenium-Grid-Extras
IRC : irc.freenode.net #selenium

More Related Content

What's hot

How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsNoam Zakai
 
[Perforce] Adventures in Build
[Perforce] Adventures in Build[Perforce] Adventures in Build
[Perforce] Adventures in BuildPerforce
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformLivePerson
 
Selenium testing
Selenium testingSelenium testing
Selenium testingJason Myers
 
The way to set automation testing
The way to set automation testingThe way to set automation testing
The way to set automation testingDuy Tan Geek
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverBlazeMeter
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansiblewajrcs
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the MassesSai Perchard
 
Decapitating Selenium with JavaScript
Decapitating Selenium with JavaScriptDecapitating Selenium with JavaScript
Decapitating Selenium with JavaScriptAlan Parkinson
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSCGian Maria Ricci
 
Ansible Introduction
Ansible IntroductionAnsible Introduction
Ansible IntroductionGong Haibing
 
Automated testing with Drupal
Automated testing with DrupalAutomated testing with Drupal
Automated testing with DrupalPromet Source
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with ChefJonathan Weiss
 
Selenium Training
Selenium  Training  Selenium  Training
Selenium Training zasi besant
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java worldAshok Kumar
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleSpringPeople
 

What's hot (20)

How to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud SolutionsHow to work with Selenium Grid and Cloud Solutions
How to work with Selenium Grid and Cloud Solutions
 
[Perforce] Adventures in Build
[Perforce] Adventures in Build[Perforce] Adventures in Build
[Perforce] Adventures in Build
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platform
 
Selenium testing
Selenium testingSelenium testing
Selenium testing
 
Selenium practical
Selenium practicalSelenium practical
Selenium practical
 
The way to set automation testing
The way to set automation testingThe way to set automation testing
The way to set automation testing
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & Webdriver
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansible
 
Automated ui-testing
Automated ui-testingAutomated ui-testing
Automated ui-testing
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the Masses
 
Cypress new old Selenium
Cypress new old SeleniumCypress new old Selenium
Cypress new old Selenium
 
Decapitating Selenium with JavaScript
Decapitating Selenium with JavaScriptDecapitating Selenium with JavaScript
Decapitating Selenium with JavaScript
 
ColdFusion builder plugins
ColdFusion builder pluginsColdFusion builder plugins
ColdFusion builder plugins
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
Ansible Introduction
Ansible IntroductionAnsible Introduction
Ansible Introduction
 
Automated testing with Drupal
Automated testing with DrupalAutomated testing with Drupal
Automated testing with Drupal
 
Infrastructure Automation with Chef
Infrastructure Automation with ChefInfrastructure Automation with Chef
Infrastructure Automation with Chef
 
Selenium Training
Selenium  Training  Selenium  Training
Selenium Training
 
Jenkins for java world
Jenkins for java worldJenkins for java world
Jenkins for java world
 
Introduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeopleIntroduction to Selenium Webdriver - SpringPeople
Introduction to Selenium Webdriver - SpringPeople
 

Viewers also liked

The Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in ParallelThe Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in ParallelJosiah Renaudin
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015aragavan
 
Selenium Camp 2016 - Effective UI tests scaling on Java
Selenium Camp 2016 - Effective UI tests scaling on JavaSelenium Camp 2016 - Effective UI tests scaling on Java
Selenium Camp 2016 - Effective UI tests scaling on JavaSergey Korol
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsAndreas Grabner
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copyDavid O'Dowd
 
Selenium, testNG , Selenium Grid & Best Practices
Selenium, testNG , Selenium Grid & Best PracticesSelenium, testNG , Selenium Grid & Best Practices
Selenium, testNG , Selenium Grid & Best PracticesMathildeLemee
 
Selenium lightning-talk
Selenium lightning-talkSelenium lightning-talk
Selenium lightning-talkStephen Donner
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudCarlos Sanchez
 
SeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii SoldatenkoSeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii SoldatenkoAndrii Soldatenko
 
Selenium Gridで遊ぼう
Selenium Gridで遊ぼうSelenium Gridで遊ぼう
Selenium Gridで遊ぼう洋史 東平
 
Distributed automation selcamp2016
Distributed automation selcamp2016Distributed automation selcamp2016
Distributed automation selcamp2016aragavan
 
Fast web acceptance testing with selenium-grid
Fast web acceptance testing with selenium-gridFast web acceptance testing with selenium-grid
Fast web acceptance testing with selenium-gridJean-Michel Garnier
 
Dave Haeffner's Proven Method to Grading the Quality of Selenium Tests
Dave Haeffner's Proven Method to Grading the Quality of Selenium TestsDave Haeffner's Proven Method to Grading the Quality of Selenium Tests
Dave Haeffner's Proven Method to Grading the Quality of Selenium TestsApplitools
 
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs
 
How to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughHow to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughNoam Zakai
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Serviceskraqa
 
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUpAutoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUparagavan
 
Introduction to selenium_grid_workshop
Introduction to selenium_grid_workshopIntroduction to selenium_grid_workshop
Introduction to selenium_grid_workshopseleniumconf
 

Viewers also liked (18)

The Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in ParallelThe Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in Parallel
 
Distributed automation sel_conf_2015
Distributed automation sel_conf_2015Distributed automation sel_conf_2015
Distributed automation sel_conf_2015
 
Selenium Camp 2016 - Effective UI tests scaling on Java
Selenium Camp 2016 - Effective UI tests scaling on JavaSelenium Camp 2016 - Effective UI tests scaling on Java
Selenium Camp 2016 - Effective UI tests scaling on Java
 
DevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback LoopsDevOps Pipelines and Metrics Driven Feedback Loops
DevOps Pipelines and Metrics Driven Feedback Loops
 
Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
 
Selenium, testNG , Selenium Grid & Best Practices
Selenium, testNG , Selenium Grid & Best PracticesSelenium, testNG , Selenium Grid & Best Practices
Selenium, testNG , Selenium Grid & Best Practices
 
Selenium lightning-talk
Selenium lightning-talkSelenium lightning-talk
Selenium lightning-talk
 
Enterprise Build And Test In The Cloud
Enterprise Build And Test In The CloudEnterprise Build And Test In The Cloud
Enterprise Build And Test In The Cloud
 
SeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii SoldatenkoSeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii Soldatenko
 
Selenium Gridで遊ぼう
Selenium Gridで遊ぼうSelenium Gridで遊ぼう
Selenium Gridで遊ぼう
 
Distributed automation selcamp2016
Distributed automation selcamp2016Distributed automation selcamp2016
Distributed automation selcamp2016
 
Fast web acceptance testing with selenium-grid
Fast web acceptance testing with selenium-gridFast web acceptance testing with selenium-grid
Fast web acceptance testing with selenium-grid
 
Dave Haeffner's Proven Method to Grading the Quality of Selenium Tests
Dave Haeffner's Proven Method to Grading the Quality of Selenium TestsDave Haeffner's Proven Method to Grading the Quality of Selenium Tests
Dave Haeffner's Proven Method to Grading the Quality of Selenium Tests
 
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the CloudSauce Labs+Applitools - Automated Visual Testing in the Cloud
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
 
How to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthroughHow to work with Selenium Grid: a quick walkthrough
How to work with Selenium Grid: a quick walkthrough
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
 
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUpAutoscaled Distributed Automation using AWS at Selenium London MeetUp
Autoscaled Distributed Automation using AWS at Selenium London MeetUp
 
Introduction to selenium_grid_workshop
Introduction to selenium_grid_workshopIntroduction to selenium_grid_workshop
Introduction to selenium_grid_workshop
 

Similar to Selenium-Grid-Extras

DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps_Fest
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentMax Klymyshyn
 
Selenium training for beginners
Selenium training for beginnersSelenium training for beginners
Selenium training for beginnersTIB Academy
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQAFest
 
First steps with selenium rc
First steps with selenium rcFirst steps with selenium rc
First steps with selenium rcDang Nguyen
 
Selenium 101 Webinar
Selenium 101 WebinarSelenium 101 Webinar
Selenium 101 WebinarDaniel Herken
 
Selendroid in Action
Selendroid in ActionSelendroid in Action
Selendroid in ActionDominik Dary
 
End to-end testing from rookie to pro
End to-end testing  from rookie to proEnd to-end testing  from rookie to pro
End to-end testing from rookie to proDomenico Gemoli
 
Selenium for Tester.pdf
Selenium for Tester.pdfSelenium for Tester.pdf
Selenium for Tester.pdfRTechRInfoIT
 
Selenium Tutorial for Beginners - TIB Academy
Selenium Tutorial for Beginners - TIB AcademySelenium Tutorial for Beginners - TIB Academy
Selenium Tutorial for Beginners - TIB AcademyTIB Academy
 
Selenium Overview - By Adam Carmi
Selenium Overview - By Adam CarmiSelenium Overview - By Adam Carmi
Selenium Overview - By Adam CarmiApplitools
 
Selenium Basics by Quontra Solutions
Selenium Basics by Quontra SolutionsSelenium Basics by Quontra Solutions
Selenium Basics by Quontra SolutionsQUONTRASOLUTIONS
 
Tanvir Afzal: Selenium
Tanvir Afzal: SeleniumTanvir Afzal: Selenium
Tanvir Afzal: SeleniumSQABD
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試 政億 林
 

Similar to Selenium-Grid-Extras (20)

DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
Selenium training for beginners
Selenium training for beginnersSelenium training for beginners
Selenium training for beginners
 
Selenium
SeleniumSelenium
Selenium
 
Selenium
SeleniumSelenium
Selenium
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
 
First steps with selenium rc
First steps with selenium rcFirst steps with selenium rc
First steps with selenium rc
 
Selenium 101 Webinar
Selenium 101 WebinarSelenium 101 Webinar
Selenium 101 Webinar
 
Selenium
SeleniumSelenium
Selenium
 
Selendroid in Action
Selendroid in ActionSelendroid in Action
Selendroid in Action
 
End to-end testing from rookie to pro
End to-end testing  from rookie to proEnd to-end testing  from rookie to pro
End to-end testing from rookie to pro
 
Selenium for Tester.pdf
Selenium for Tester.pdfSelenium for Tester.pdf
Selenium for Tester.pdf
 
Selenium
SeleniumSelenium
Selenium
 
Selenium Tutorial for Beginners - TIB Academy
Selenium Tutorial for Beginners - TIB AcademySelenium Tutorial for Beginners - TIB Academy
Selenium Tutorial for Beginners - TIB Academy
 
Selenium Overview - By Adam Carmi
Selenium Overview - By Adam CarmiSelenium Overview - By Adam Carmi
Selenium Overview - By Adam Carmi
 
Selenium Basics by Quontra Solutions
Selenium Basics by Quontra SolutionsSelenium Basics by Quontra Solutions
Selenium Basics by Quontra Solutions
 
Browser-level testing
Browser-level testingBrowser-level testing
Browser-level testing
 
Selenium
SeleniumSelenium
Selenium
 
Tanvir Afzal: Selenium
Tanvir Afzal: SeleniumTanvir Afzal: Selenium
Tanvir Afzal: Selenium
 
前端網頁自動測試
前端網頁自動測試 前端網頁自動測試
前端網頁自動測試
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Selenium-Grid-Extras

Editor's Notes

  1. By a show of hands, how many people have heard of selenium grid extras? Ok nice. Selenium Grid Extras was created by a guy named Dima Kovalenko when he worked at Groupon. It was created to make setting up and maintaining a selenium grid easy and affordable.
  2. So who am I? I have been a contributor to the grid extras project for 2 years. I also help on the selenium irc channel and google group. And I am currently a Software Developer Engineer in Test at GoDaddy (in the Tempe Arizona office).
  3. I wanted to first explain how the selenium grid works to give some background information. The selenium grid is just a proxy. You tell the hub what kind of environment you want to run your tests against, and the hub finds a node that meets those requirements and forwards the requests to that node. The node receives those commands by the selenium standalone server and tells the driver those commands. The driver then executes those commands in the browser, and the response is sent back to the hub, and then back to the where the tests kicked off from. You can see we have a hub and 3 nodes, each with a different browser. When the node registers to the hub, it tells it that it has IE11 (from its node config file).
  4. So I bet your asking, why do we need anything besides the normal selenium grid? You set it up once and leave it. Well, as your nodes are staying up for extended periods of time, the memory usage will probably get higher, and you could be left with a lot of browser windows left opened, due to many reasons. When this happens, you’ll start to see more tests start to fail for unknown reasons.
  5. Now onto Selenium Grid Extras. When you first run the selenium grid extras jar file, it will go through a bunch of questions about how you want to set it up. It will store all of these responses into it’s own config file, and start the grid extras service. Some of the things it will ask you is, which browsers you want to run on the node, if you want to auto restart the nodes, and if you want to record video. You can skip this manual step by creating this config file within a chef or puppet or bash script. This might come in handy if you automatically provision your grid nodes.
  6. Selenium Grid Extras provides multiple different endpoints you can hit on each of the node and hub machines to maintain it. The default port is 3000, but this is now configurable in the latest version. Going to the /api endpoint, will show all of the valid endpoints with a description, the accepted parameters, default values, as well as the response.
  7. I will now show a demo of setting up selenium grid extras. ***Local Selenium Grid Extras
  8. The Selenium Grid Extras project solves a lot of the stability and maintainability issues with a normal selenium grid. It also provides new functionality which could be helpful in debugging your tests.
  9. Auto update may seem like a bad idea sometimes, but it does have some benefits. If your browsers are NOT setup to disable automatic updates, updating the driver could save your tests from failing. The grid extras jar file can also be set up to auto update, which is a cool feature in my opinion. You’ll get the latest features without having to do anything, besides restart your grid extras service.
  10. How many people were affected by Chrome updating, and your tests started to fail? There are compatibility issues with Chrome 54 and chromedriver versions less than 2.24. The project that we use Selenium Grid Extras for, was unaffected by this change since the chromedriver version was already at the latest. This is just one example of why auto updating the versions could be useful.
  11. Show demo of updating from chromedriver 2.23 with Chrome 54, updating to 2.24 Local Selenium Grid Extras
  12. Your nodes can accrue some leftover browsers. If you accidently forget to close the driver after the test run, or if the connection between the driver and the browser crashes, or if you kill a test in the middle, you could be left with browsers on the machines. Also, in general, the memory usage could go up if there are any memory leaks in any of the services running on the machine. Restarting the nodes after X amount of test runs, gives you a clean slate every so often. With auto restarting the node, Selenium Grid Extras also gives the option to setup auto login, when you first run the grid extras jar file.
  13. If you ever had to change a node config file, for all your nodes, you know how painful it is to log into each machine and update the config file. Storing all the configs in a central location, on the hub with the case of Selenium Grid Extras, means you only have to log into one machine and can quickly update all of your node config files to save several hours. It is also easy to compare node config files to make sure your settings you want to be the same (like timeouts) are actually the same across nodes. One feature improvement that we are thinking about adding to this project, is having 1 node config file be used for multiple nodes.
  14. The video of the test runs is perhaps the single best feature of Selenium Grid Extras. It is an OS level video, which means it will capture any OS level modal dialogs that appear. One caveat to this, is that if you have multiple browsers open at the same time, it will only capture the top most browser. This is another reason running a single browser per node is a good idea. This will greatly help with debugging and bug reporting. Imagine you want to create a bug for a failing test, you can easily upload the video and the developer can quickly see the issue and fix it. This is another huge time saver.
  15. Run a test, show the video Local Selenium-Grid-Extras
  16. Just like the OS level videos that are taken, you can take an OS level screenshot by hitting an endpoint on the node. These screenshots are currently being saved on the node machine. Inside of your code, you would call this endpoint to take an OS level screenshot on test failure, for example.
  17. Sometimes, the mouse can interfere with the test. For this reason, the mouse is automatically moved out of the way, to the top left of the screen. Just make sure there isn’t a hot corner setup in the same location. This feature is extremely useful for scenarios where you need to mouse over an area to show something, like a dropdown.
  18. The ability to kill processes on remote machines is also very helpful. You may not want to have auto restart of the nodes, and still clean up the machine.
  19. Have VM with multiple chromes, call the kill all chrome, and refresh the url ***Non-Local Grid Extras
  20. When a node starts up, it can check the browser versions of firefox, chrome, and IE to see if they changed. If they did, it will update the node config file with the new version. This can come in handy when Firefox or Chrome auto update (or even if you update it manually), and you want to get a quick idea of what versions of what browsers are currently on the machine by going to the grid extras or normal hub URL.
  21. To run tests against IE, the IE Protected Mode must be set as the same value for all zones. It doesn’t matter if they are all set, or all unset, they just have to be the same value. Selenium Grid Extras can automatically do this for you each time the grid extras service starts. Another setting in Internet Explorer is mixed content. If this is set to disabled, and an iframe in your web page is http, but the webpage itself is https, the iframe won’t be displayed. Selenium Grid Extras can set the mixed content value as well.
  22. Here is a summary what we went over.
  23. ****See next two slides for screenshots.*****
  24. Here, you can see the OS level screenshot of the machine. It also tells you what version of grid extras is currently running, and the IP of the machine.
  25. This is what shows below the previous screenshot. It shows you some of the node config file values, as well as information about the machine (like CPU, RAM, JVM, and Hard Drive space). You can also download the videos that ran on that node.
  26. SauceLabs is a great product. It has all of the features and advantages as Selenium Grid Extras (and then some). The normal selenium grid is good, but requires a lot of maintenance and your nodes won’t be as stable. Docker-selenium is an amazing project, which lets you very easily setup a chrome and/or firefox selenium grid. It is easy enough to setup your tests to start a new node for each test, and kill it afterwards. This would solve a lot of the stability issues, however one thing that docker-selenium doesn’t have is a video of the test run. It also does not have Internet Explorer, Edge, or Appium for iOS tests. There are no Windows containers from before Windows Server 2016. Selenium Grid Extras can be ran on any platform, and control any kind of selenium grid nodes. Whether it is Windows IE11, Chrome on OSX, or an OSX machine running Appium for iOS tests. There is still maintenance involved with Selenium Grid Extras. You still need to install java, the browsers, and download the selenium grid extras jar. You also need to update the browsers if they are set to not set auto update. It all comes down to a cost, feature, and maintenance tradeoff. SauceLabs may have a lot of great features, but you are paying for them with money. Selenium Grid Extras may come with a few less features, but you have to take the time to learn it and still setup your machines. Selenium-docker is great, but if you need to test against IE11 or Edge, you still need something else.
  27. Add ability to auto download and upgrade Edge Driver. One issue here is that there is no easy url to see all the versions of the EdgeDriver. Plus, the version of Edge Driver depends on the version of Windows. Add a flag for updating past major and minor versions of drivers. Similar to the tilde and carat in the javascript package.json world. Better video names. Currently the video names are UUIDs with timestamps. What I am thinking, is an endpoint where the user would get to name the video. Allow screenshots to be downloadable via the grid extras web page. Per browser videos, instead of OS level screenshots. There has been some work done here, but it is not complete and I am unsure of the performance impact. We are also thinking of adding a docker container for grid extras. Documentation – It is sometimes hard for people to get started with using selenium grid extras.
  28. We are looking for contributors for this project. If you use this project, or plan to use this project, and want to help out, please meet up with me after. You can help by adding new features, fixing bugs, adding tests, or writing documentation.
  29. If you have questions, you can ask them here, or if you wanted , you can ask them on the Gitter, Github or IRC channel.