Selenium Overview

Introduction

Testable supports executing Selenium tests in a globally distributed fashion using the following Selenium bindings:

  1. Webdriver.io (Node.js)
  2. Selenium Java
  3. Serenity BDD

This document gives a general overview of how Testable integrates with Selenium.

How it Works

Selenium Diagram

Before running the Selenium client (e.g. Webdriver.io, Java, Serenity), each test runner starts its own local Selenium Standalone server and a new port on a local Browsermob proxy. This local Selenium server is shared across the virtual users running on that test runner. The Selenium remote webdriver API is used for Selenium clients to communicate with the local Selenium server. In addition, all network requests made by the browsers are proxied locally using browsermob to capture useful performance metrics.

This share nothing approach allows for scaling massive load tests that simulate concurrent users across numerous test runners and regions by avoiding use of a shared, non-local Selenium grid that limits scalability.

The code that defines your scenario can be uploaded to Testable or downloaded at test time from a Git repository.