EUM Monitor (Web UI)

The EUM (End User Monitoring) monitor type executes multi-step user journeys in a real web browser, exactly as an end user would experience them. This page is the full specification of the EUM engine: capabilities, scenario script functions, TOTP/MFA support, and secrets/key-vault integration.

Overview

Property Value
Browsers Chrome, Firefox, Edge
Scenario source Recorded with Mugnsoft Pulse
Database exec.db
Runs on The Monitor probe

EUM scenarios are executed headless by default on the probe; each run replays the recorded journey, measures every declared transaction, and reports timings, screenshots, video, and HAR data back to the Webserver.


Capabilities

  • Multi-step transaction recording (via MNS IDE or Selenium IDE)
  • Individual transaction timing with critical/major thresholds, enriched with window.performance browser metrics
  • Screenshot capture: on error, per transaction, or on every step (photo mode)
  • Video recording of the entire execution
  • HAR (HTTP Archive) capture of all network traffic through the embedded proxy
  • TOTP (Time-based One-Time Password) support for 2FA / MFA
  • Encrypted credentials — embedded (AES) or retrieved from an external key vault at runtime
  • Corporate proxy configuration
  • Visual similarity checking

Scenario Script Functions

Scenario files are generated by the MNS IDE recorder and call the following built-in functions:

Function Purpose
mnsStartTransaction(name, timeout, critical_ms, major_ms) Start a named, timed transaction with thresholds
mnsStopTransaction() Stop the current transaction and record its timing + window.performance metrics
captureScreenshotReport(...) Capture a screenshot into the run report
highlightElement(element) Visually highlight an element before interacting with it
acceptCookie(...) Dismiss cookie-consent banners
waitForWindow(...) Wait for and switch to a new browser window/tab
MNSDecrypt("...") Decrypt an embedded encrypted credential at runtime

Example:

mnsStartTransaction("Login Page", 30, 5000, 3000); // name, timeout, critical_ms, major_ms
driver.findElement(By.id("username")).sendKeys("user");
driver
  .findElement(By.id("password"))
  .sendKeys(MNSDecrypt("q1hjZXR0ZSBjbGUgZXN0..."));
driver.findElement(By.id("submit")).click();
mnsStopTransaction();

Encrypted password

wherever required, use any of the jar file in the monitor exec folder: MNSCliXXX.jar

cd <monit_home>\exec\jdk\bin\java.exe -jar -DpwdEncrypt=78814630Mdp!! MNSCliOnDemand.jar
skYMPogdjkDvTwy6RwVPMw==

Then in the scenarion or Mugnsoft Pulse, use that previously generated string in the MNSDecrypt private function. For instance MNSDecrypt(“skYMPogdjkDvTwy6RwVPMw==") with the above example.

driver
  .findElement(By.name("password"))
  .sendKeys(MNSDecrypt("skYMPogdjkDvTwy6RwVPMw==")); //wil be decrypted as "78814630Mdp!!");

TOTP / MFA Support

The EUM engine can generate TOTP codes during a scenario, allowing monitors to log in to applications protected by two-factor authentication. Wherever the totp code number is required, replace with a protected keyword totpCode.

alt text

In advanced tab of the monitor information:

  • check the totp
  • add the secret

alt text

Then you can deploy it and the totpCode will be computed accordingly during the scheduled replay.

Supported specification: RFC 6238

Parameter Value
Algorithm HMAC-SHA1
Code length 6 digits
Time step 30 seconds
Shared secret encoding Base32

These are the same parameters used by Google Authenticator, so any identity provider offering a “Google Authenticator”-style TOTP enrollment is compatible — including Okta, Microsoft Entra ID, Google, and Duo.

The TOTP shared secret is stored AES-encrypted and delivered to the engine at runtime through the TOTP_SECRET_<urlTitle> environment variable.

Okta compatibility

Okta factor Supported
Google Authenticator factor (standard TOTP) ✅ Exact match with the supported parameters
Okta Verify — TOTP mode ✅ Capture the shared secret at enrollment time
Okta Verify — Push ❌ Proprietary push protocol, not TOTP
Custom TOTP factor with non-default parameters (SHA-256/512, 8 digits, time step ≠ 30 s) ❌ Not currently supported

Secrets & Key-Vault Integration

EUM scenarios never store passwords in clear text. Two mechanisms are available:

1. Embedded encrypted credentials

Passwords can be embedded directly in the scenario as AES-encrypted strings and decrypted at runtime with MNSDecrypt("..."). Operators generate the encrypted strings with the engine’s password-encrypt mode and paste them into the scenario.

2. External key vaults

Credentials can be retrieved at runtime from an external secrets manager, so they never appear in the scenario at all. When credentials stored in a Vault are required, replace them with the protected keywords vaultUsername and vaultPassword.

vaultUsername
vaultPassword

In the monitor configuration, associate the Vault containing the credentials to be used.

Once the monitor is deployed, the vaultUsername and vaultPassword values will be automatically replaced with the credentials retrieved from the Vault during scenario execution. This ensures that authentication information is never stored in plain text within the script or scenario.

Provider vaultType
HashiCorp Vault hashicorp
Azure Key Vault azure
CyberArk Conjur cyberark

At execution time, the retrieved credentials are delivered to the scenario through per-monitor environment variables:

Environment variable Content
VAULT_USERNAME_<urlTitle> Username fetched from the vault
VAULT_PASSWORD_<urlTitle> Password fetched from the vault
TOTP_SECRET_<urlTitle> Encrypted TOTP shared secret

Vault connection settings (vaultType, URLs, tokens) are configured on the Monitor probe — see Monitor Configuration → Vault Integration.

Translations