Selenium Grid
Selenium Grid can be a bit daunting to get up and running. Starting it is quite easy, but using it effectively can require pulling in third-party tools. In this workshop we’ll cover how to run your grid effectively, using best practices culled from several large grid installations.
Outline/Structure of the Workshop
- Describe what the grid is intended to solve, then get into how it solves it
- Going deeper into the funnel, how does it get its instructions, and how does it pass them to the nodes?
Set-up
- We’ll start with the conventional setup of hub and node servers running on the same box, for simplicity.
- Different options and flags that can be used when starting the hub/node processes
- What kinds of logging do the nodes/hubs do that can help in debugging and investigating problems?
- What is Docker?
- How do you setup standalone & grid:hub-node using docker?
- Using docker-compose to simplify docker grid setup process
Running
- How do you run a test in a container?
- How do you run a test against the docker grid setup?
- How do you look at the logs of tests running in a container?
Advanced Grid:
- How to build your own docker image with custom browser versions
- Creating a hybrid Selenium Grid (docker + a local IE/Safari node).
- Integrating Selenium Grid to the CI pipeline (Jenkins).
- Setting up a UI manager for all your docker installations
- How do you scale containers?
- Running tests in parallel against a scaled Selenium Grid
Extras:
- Selenium Grid on Amazon ECS using ecs-selenium
- Overview of third-party tools: Zalenium, SeleniumGridScaler, selenium-grid-extras, just-ask
Learning Outcome
- What Selenium Grid is and are its capabilities
- How to run a grid
- How to scale nodes
- How to debug
- How to build own docker images for custom browser requirements
Target Audience
Anyone who wants to learn about Set up, debug and Scaling Selenium Grid
Prerequisites for Attendees
Selenium(mandatorily) - As we will focus only on Grid and won't cover how to write a script.
Docker
Windows: https://docs.docker.com/engine/installation/windows/
This will include installing Hyper-V
Mac: https://docs.docker.com/engine/installation/mac/
- This will include installing the latest version of VirtualBox
Linux Distributions: https://docker.github.io/engine/installation/linux/
- The requirements will vary depending on the flavor of Linux being used
Selenium-server-jar (latest): https://bit.ly/327RZjR
Latest Selenium 4 Alpha version 4.0.0-alpha-6
You will also need the browser drivers and language bindings necessary for your target configuration, listed on this page: https://www.selenium.dev/downloads/
Optional
- If you intend to work with an auto-scaling Grid, an AWS account with full EC2 permissions.
- It is also recommended that you have Eclipse or IntelliJ, a GitHub account, and an open USB port so participants can share files using a thumb drive.
Tracing Selenium Grid
- Install Coursier via a homebrew `
brew install coursier/formulas/coursier`
- Install Jaeger via docker
Links
schedule Submitted 1 year ago
People who liked this proposal, also liked:
-
keyboard_arrow_down
Simon Stewart - Selenium: State of the Union
45 Mins
Keynote
Intermediate
What's the latest in the world of Selenium since the last SeleniumConf? In this talk, we'll cover Selenium 4, how the project is run, how you can participate, reminiscing on the Old Days, and reflect on something that at first doesn't appear to be related to Selenium, yet is intimately related to it.
-
keyboard_arrow_down
David Burns - Selenium: Giblets and all
45 Mins
Talk
Beginner
Selenium has done a pretty good job in keeping the API surface friendly and usable, but what actually happens when you call some of the commands? In this talk, David will walk you through what happens when you make a call in your test, how it gets to the browser, what happens in the browser, and how it returns all the way back to your test.
Selenium is designed so that each of the commands works synchronously, so you know that a command has finished before it moves onto the next. This creates some interesting problems in browsers since they are mostly designed around asynchronicity.
We will start with how each of the bindings communicates with the browser and then move on to how navigation works. David will show all the different aspects that we need to figure out to tell if a page is “loaded”. He will also show where it goes horribly wrong and how you can write code in your tests to stabilise around these “anomalies”.
From there we will have a look at how clicks work from making sure they are trusted to what if they cause a navigation.
-
keyboard_arrow_down
Diego Molina - Test Automation is not just coding
45 Mins
Talk
Intermediate
We learn more from our failures than our successes. I want to share one of my failure stories, where I learned that coding is not the most important task in Test Automation.
A failure taught me that coding is not the most important task in Test Automation. I fixed a bug, added tests, and shipped it to production. After that, a bug report came in showing that the fix created a new bug. I felt bad, I did not understand how that happened. A hotfix solved the issue, but the root cause was not addressed: what did I miss?
By taking a step back, I understood the situation, it all happened by overseeing basic concepts in testing (like understanding how the system works). The problem was that coding had more priority than creating a test plan. After this, I prioritized tasks better to avoid this situation to happen again.
This talk shows that testing concepts are more important than ever, in a time where tools promise to do everything, we focus less on what and how to test, and more in using tools to test. It outlines how a test strategy can leverage a continuous testing setup. Finally, it shows that failing is ok, but failing again for the same reasons is not.
-
keyboard_arrow_down
Christian Bromann - The Nuts and Bolts of WebdriverIO
90 Mins
Workshop
Beginner
There are thousands ways if not more to setup your automation testing environment. It is often crucial when it comes to stability and maintainability. While you can build a custom framework that fits your needs there are often already sophisticated setups or frameworks available that get you up and running very quickly.
WebdriverIO is one of these frameworks that is written in Node.js. It gets you up and running within minutes and allows you to scale up your test suite while maintaining your execution time by running tests in parallel. With its huge project community it is an ideal choice for small as well as big projects that use modern frameworks such as React, Angular or Vue.js.
In this workshop you will learn everything you need to know to run a successful, stable and maintainable WebdriverIO framework. It starts with an introduction to the project and the basic concepts and will end with a sophisticated framework that includes testing strategies like Frontend Performance Testing as well as complex browser interaction with Puppeteer.
Public Feedback