Synthetic User Monitoring (SUM) - Selenium Capability

Synthetic User Monitoring (SUM) Selenium capability gives the possibility for SUM to collect performance and availability metrics from the execution of a Selenium IDE script. On this page you find an overview on how this functionality works and in the following you find how to configure SUM with Selenium.

This gives the possibility to include the client rendering (in the Web browser) in the monitored performance. So this is closer to the experience faced by an end-user.

What is Selenium?

Selenium is an open source framework dedicated to Web application tests.

It is composed of several components.

In the context of the Synthetic User Monitoring Selenium capability, the involved Selenium components are mainly:

  • Selenium IDE – Integrated Development Environment for Selenium. This is the tool that is used to create the Selenium scripts.
  • Selenium WebDriver – This is the component that "operates" the Web browser.
    It interprets the Selenium commands and converts them into action on the Web browser.
    The WebDriver is Web-browser-specific.

IMPORTANT: Selenium is not developed by SAP.

What is a Selenium IDE script?

Usually designed with the Selenium IDE component, a Selenium IDE script (or SIDE file) corresponds to a Selenium IDE project.

It describes the sequences of actions (also referred to as commands) to be performed on a Web browser, such as clicks, setting texts, and waiting for elements.

These sequences are organized into:

  • Tests: a sequence of actions to be executed one after the other.
  • Test suites: a sequence of tests to be executed one after the other.

Each action has a set of attributes to indicate:

  • Command: the action to be performed.
  • Target: the element on which the action has to be performed.
  • Value: the value to be applied for the command. Some commands have no value.
  • Comment: a free text to describe the expected action.

Selenium IDE proposes several different commands, most of which are supported by Synthetic User Monitoring. (Refer to Which Selenium commands does SUM support)

To help with the script creation, the Selenium IDE proposes a recorder.
It also gives the possibility to play back the script.

When such a script is saved via the Selenium IDE, it generates a ".side" file.
This file is the JSON representation of the sequence of actions.

How Does the SUM Selenium Capability Work?

Prerequisites

  • You have a Selenium IDE script (also known as a SIDE file).
  • You have configured a SUM location for the SUM Selenium capability.

Process

  1. You import the SIDE file into SUM.
    This creates a new SUM scenario of the type Selenium.
  2. You configure the scenario (set its variable values, define its scheduling, etc.).
  3. You deploy the scenario on a location (SUM robot) that has the Selenium capability.
    The SUM robot schedules the Scenario executions (as per its scheduling).
  4. Once the execution has been triggered, the SUM robot sequentially reads the commands from the SIDE file.
    For each command:
    1. The SUM robot sets the potential variables and sends the command to the webdriver (local or remote, depending on the configuration of the scenario).
    2. The webdriver instructs the Web browser to perform the action on the Web application to be monitored.
    3. The webdriver returns the result of the command to the SUM robot.
  5. Based on the results and the duration of the actions, the SUM robot determines the performance and the availability metrics.
  6. The SUM robot sends the metrics to the SUM server to be processed and stored.


Local vs Remote Execution

The SUM robot can be instructed to execute the SUM Selenium scenario locally or remotely.
This must be configured in the scenario configuration.


Local Execution

The SUM scenario is executed from the SUM location host.
In other words, it is executed via a webdriver and a Web browser located on the location host.

The local execution requires some specific configuration on the location host.


Remote Execution

The scenario is executed from the indicated remote location.
In other words, it is executed via the webdriver pointed by the remote URL indicated in the scenario configuration.

The remote location can be one of the following:

  • In the cloud, e.g. Selenium Docker, Selenium Grid, or any Selenium-compatible cloud test service provider.
  • Hosted on-premises, e.g. in Selenium Docker.

Local Execution vs Remote Execution

LocalRemote
  • The point of measure is really the monitoring location.
  • The CPU load of the location host could impact the measure of the performance.
  • Each execution generates some load on the host. 
    This load is greater than for an HTTP script because the execution also renders the client UI of the monitored application.
  • The point of measure is the pointed remote location hosting the Web browser.
  • Generally, the remote location is designed in such a way that it's not impacted by the number of executed scripts.