> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM test traffic

> Sessions of synthetic checks and CI tests are recorded apart from real users, and can be found from the run that made them.

A session is of type `user`, `synthetics`, or `ci_test`. A browser [synthetic check](https://docs.molesignal.com/en-US/synthetics.md) that opens a page running the browser SDK makes a session of type `synthetics`; no setting is needed. Its events say the check, the run, and the location in `synthetics.test_id`, `synthetics.result_id`, and `synthetics.location_id`.

## What it means for the numbers

The figures of an application are of real users, so a session a test drove is left out of:

* the overview, performance, frustration, errors, analytics, heatmap, and feature flag pages, and the built-in dashboards;
* [alert rules on RUM figures](https://docs.molesignal.com/en-US/rum/alerts.md);
* the rows of the explorer and the RUM tools of Mole Agent.

Its errors do not open [issues](https://docs.molesignal.com/en-US/rum/errors.md), so a failing check cannot count as a new issue. A page that left any out says **N test sessions left out**, which leads to them.

Such a session is also not sampled: an application's [retention](https://docs.molesignal.com/en-US/rum/sampling.md) keeps it whole. When a filter of the application names `session.type`, the application has said what becomes of test runs, and they go by its filters and shares as any session does. The SDK keeps such a session whatever its own `sessionSampleRate` says.

## Find them

* From a run: **Open the RUM session of this run**, in the attempt of a result of a browser check.
* From the session: the session page names the kind of session and leads to the results of the check.
* In the explorer: a query that names `session.type`, `synthetics.*`, or `ci_test.*` is taken at its word, so `session.type = 'synthetics'` finds them. Without one, the explorer shows what real users did. The values of `session.type` are listed across every kind of session.
* With the API, the same goes for the filters of `search`, `aggregate`, `facets`, and `histogram`.

## Tests of an application

Set the same global before any script of the page runs. In Playwright:

```ts theme={null}
await page.addInitScript((id) => {
  window.__MOLESIGNAL_TEST_CONTEXT__ = { type: 'ci_test', test_execution_id: id };
}, process.env.GITHUB_RUN_ID);
```

The SDK sets `window.__MOLESIGNAL_RUM_SESSION__` to the id of the session it recorded. A check reads it to link to the session, and leaves the page at the end of the journey so that the SDK sends what it holds.

> [!NOTE]
>
> A page has to run a browser SDK later than 0.2.0 for its session to say what drove it. The requests of the SDK go through the egress policy of the check like any other, so a policy that does not allow MoleSignal fails the check.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.