Workshop – Driving Observability with Selenium Grid 4

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

Learning Outcome

  • What is Selenium Grid its capabilities
  • How to run a grid
  • How to scale nodes
  • How to debug
  • How to build your own Docker images for custom browser requirements

Target Audience

Anyone who wants to learn about set up, debug and scale Selenium Grid

Prerequisites for Attendees

Selenium (mandatory) – 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 version 4.3.0.jar

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
  1. Install Coursier via a homebrew `brew install coursier/formulas/coursier`
  2. Install Jaeger via docker