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://goo.gl/SP94ZB

You will also need the browser drivers and language bindings necessary for your target configuration, listed on this page: http://www.seleniumhq.org/download/

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.

schedule Submitted 6 months ago

Public Feedback

comment Suggest improvements to the Speaker
  • Denys Pavlenko
    By Denys Pavlenko  ~  5 months ago
    reply Reply

    I think the submission could be improved by adding the comparison with other tools like Selenoid/ Moon, that are going to be more effective and popular these days

    And also, the highlight of what has changed significantly since last 2-3-4 years to make Selenium Grid great again! 

    • Diego Molina
      By Diego Molina  ~  5 months ago
      reply Reply

      We normally mention Selenoid as an alternative during the workshop itself, but we do not mention Moon since it is a paid tool when one needs to scale up considerably.

      About the changes between Grid 3.x and 4.x, we are in the process of updating the official docs and restructuring the docker images, all that will be available for the workshop.


  • Liked Simon Stewart
    keyboard_arrow_down

    Simon Stewart - Selenium: State of the Union

    Simon Stewart
    Simon Stewart
    Project Lead
    The Selenium Project
    schedule 6 months ago
    Sold Out!
    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.

  • Liked David Burns
    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.

  • Liked Diego Molina
    keyboard_arrow_down

    Diego Molina - Test Automation is not just coding

    Diego Molina
    Diego Molina
    Sr. Software Engineer
    Sauce Labs
    schedule 7 months ago
    Sold Out!
    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.

  • Liked Christian Bromann
    keyboard_arrow_down

    Christian Bromann - The Nuts and Bolts of WebdriverIO

    Christian Bromann
    Christian Bromann
    Software Engineer
    Sauce Labs
    schedule 7 months ago
    Sold Out!
    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.