🚀 Deploy the RPA Bot Recorder for SAP
Deploy the GermainUX RPA Bot Recorder to create Selenium-based synthetic scenarios for browser-accessible SAP applications.
Synthetic scenarios continuously test critical SAP journeys so GermainUX can detect availability, performance, functional, and business-process failures before they affect real users.
🔁 Recorder versus synthetic execution
The RPA Bot Recorder is a browser extension used to create a Selenium scenario. It is not, by itself, the component that continuously executes the scenario.
|
Component |
Purpose |
|---|---|
|
RPA Bot Recorder |
Records and edits the initial browser scenario |
|
GermainUX Engine and platform |
Runs the recorded scenario on a schedule; Manages execution, collects results, analyzes failures, and triggers alerts |
|
RUM JS |
Captures real-user sessions; not required solely to execute a synthetic scenario |
After recording, deploy the scenario to the appropriate GermainUX synthetic execution environment.
🔍 What synthetic SAP monitoring can detect
Synthetic scenarios can identify:
|
Issue |
|---|
|
SAP application unavailable |
|
Login failure |
|
Slow authentication |
|
Fiori launchpad unavailable |
|
Application tile missing |
|
Slow page or application launch |
|
Search failure |
|
Missing or incorrect data |
|
Workflow submission failure |
|
Integration failure |
|
JavaScript error |
|
Network timeout |
|
Unexpected popup or validation message |
|
Business-process failure |
|
Performance degradation by location |
|
Regression after an SAP release |
Synthetic monitoring represents controlled test activity. It does not replace real-user monitoring, which reveals the actual experiences and workflows of production users.
📋 Prerequisites
Before recording a scenario, confirm that:
|
Prerequisite |
|---|
|
The target SAP application is accessible through a supported browser. |
|
You can install the RPA Bot Recorder extension. |
|
The GermainUX environment is available. |
|
A synthetic execution node can reach the SAP application. |
|
A dedicated SAP test account exists. |
|
Multifactor authentication requirements have been addressed securely. |
|
Safe and repeatable test data is available. |
|
The scenario has defined success criteria. |
|
The SAP application owner approves the execution frequency. |
|
Privacy and credential-handling requirements are documented. |
👤 Dedicated synthetic account
Use a dedicated account that:
|
Account property |
|---|
|
Has only the permissions required by the scenario |
|
Is clearly identified as synthetic |
|
Is excluded from real-user adoption and productivity reporting |
|
Is not shared with human users |
|
Has a documented password-rotation process |
|
Can operate during the scheduled monitoring period |
|
Does not expose production-sensitive information unnecessarily |
Do not record personal credentials into a Selenium script.
✅ Select scenarios to monitor
Prioritize short, stable journeys that validate important SAP capabilities.
⚪ Availability scenario
Example:
-
Open the SAP login page.
-
Confirm that the page loads.
-
Sign in.
-
Confirm that the Fiori launchpad appears.
-
Sign out.
🚀 Application-launch scenario
Example:
-
Sign in.
-
Locate a specified application tile.
-
Open the application.
-
Confirm that its initial view loads.
-
Validate a stable page element.
🔎 Search scenario
Example:
-
Open the required SAP application.
-
Enter an approved test search.
-
Submit the search.
-
Confirm that expected results appear.
-
Validate that the result is current or correct.
🏭 Business-process scenario
Examples include:
-
Create a test purchase requisition
-
Look up an approved test material
-
Create or update a test sales order
-
Submit an approval step
-
Review an invoice
-
Open an employee self-service page
-
Validate inventory availability
Use non-production or reversible test operations whenever possible.
🔧 Install the RPA Bot Recorder
Follow the general GermainUX RPA Bot Recorder installation procedure.
At a high level:
-
Obtain the supported browser extension.
-
Install it in the browser used to record the scenario.
-
Approve the required extension permissions.
-
Configure the GermainUX environment if prompted.
-
Restart the browser when required.
-
Confirm that the recorder opens successfully.
For enterprise-managed browsers, deploy the extension through the organization’s approved browser policy or endpoint-management platform.
The recorder is normally required only on workstations used to create or maintain scenarios. It does not need to be installed for ordinary SAP users.
⚙️ Prepare the recording environment
Before recording:
-
Use the same browser family as the intended execution environment.
-
Set the browser zoom to the standard value.
-
Use a predictable window size.
-
Disable unrelated browser extensions.
-
Close unnecessary tabs.
-
Clear stale authentication state when required.
-
Prepare the test account.
-
Prepare reusable test data.
-
Document the expected result of each step.
-
Identify pages containing sensitive information.
Record the shortest path that validates the required business capability.
⏺️ Record the SAP scenario
-
Open the target SAP application.
-
Open the RPA Bot Recorder.
-
Start recording.
-
Perform the required SAP workflow.
-
Pause before unnecessary navigation or exploratory actions.
-
Add explicit validations at important steps.
-
Stop recording.
-
Save the scenario with a descriptive name.
Example names:
SAP PROD - Fiori Login
SAP PROD - Material Search
SAP QA - Purchase Requisition
SAP PROD - Sales Order Lookup
Include the application and environment in the name when scenarios from multiple SAP systems are managed together.
🔗 Build reliable SAP selectors
SAP Fiori and SAPUI5 applications can generate dynamic element identifiers. Recorded selectors should be reviewed before production deployment.
⭐ Prefer stable selectors
Prefer:
|
Preferred selector |
|---|
|
Stable semantic attributes |
|
Accessible names |
|
Application-defined identifiers |
|
Control labels |
|
Stable test attributes |
|
Relative selectors anchored to a stable container |
|
SAPUI5 control properties exposed consistently |
Avoid relying only on:
|
Fragile selector |
|---|
|
Absolute XPath |
|
Position in the DOM |
|
Generated numeric identifiers |
|
Temporary CSS classes |
|
Dynamic table row positions |
|
Displayed text that changes by language |
|
Long selectors containing the complete page hierarchy |
Example of a fragile selector:
/html/body/div[3]/div/div[2]/div[1]/button
A selector based on a stable button role, label, or application identifier is preferable.
Dynamic SAP controls
Pay particular attention to:
-
Fiori tiles
-
Shell navigation
-
Value-help dialogs
-
Search suggestions
-
Dynamic tables
-
Lazy-loaded rows
-
Popovers
-
Modal dialogs
-
Date pickers
-
Iframes
-
New browser windows
-
Virtualized controls
A selector that works during recording may fail during unattended execution if it depends on temporary page state.
⏲️ Configure waits and timing
Do not rely primarily on fixed delays.
Use explicit waits for conditions such as:
|
Condition |
|---|
|
Element is present |
|
Element is visible |
|
Element is enabled |
|
Page or application title is correct |
|
Loading indicator disappears |
|
Network-dependent result appears |
|
Dialog opens |
|
Table contains an expected result |
|
URL or route changes |
|
Business confirmation appears |
Use fixed waits only when no reliable application condition is available.
Configure:
-
Per-step timeout
-
Page-load timeout
-
Scenario timeout
-
Retry behavior
-
Polling interval
-
Failure screenshot behavior
Timeouts should accommodate normal SAP response-time variation without hiding genuine degradation.
✅ Add functional validations
A page loading successfully does not prove that the SAP function works.
Add validations for:
|
Validation |
|---|
|
Expected application title |
|
Fiori tile available |
|
Search result present |
|
Expected test record displayed |
|
Required field enabled |
|
Confirmation message displayed |
|
Workflow reaches the expected status |
|
No user-facing application error appears |
|
Returned data is current |
|
Integration result is available |
Keep these outcomes separate:
|
Outcome |
Meaning |
|---|---|
|
Technical success |
The browser action completed |
|
Functional success |
The expected SAP result appeared |
|
Performance success |
The step completed within its objective |
|
User validation |
SAP correctly prevented invalid input |
|
Application failure |
SAP did not operate correctly |
|
Test-data failure |
The scenario’s required test data was unavailable |
🔒 Handle authentication securely
🔑 Credentials
Store synthetic credentials in the supported GermainUX credential mechanism. Reference them at runtime rather than storing literal usernames and passwords in the recorded script.
Do not include credentials in:
|
Place |
|---|
|
Scenario names |
|
URLs |
|
Screenshots |
|
Source code |
|
Step descriptions |
|
Logs |
|
Custom attributes |
🌐 Single sign-on
SAP authentication may involve:
-
SAML
-
OAuth
-
Corporate identity providers
-
Windows integrated authentication
-
Client certificates
-
SAP identity services
-
Multifactor authentication
Validate the complete authentication path from the synthetic execution node.
🛡️ Multifactor authentication
Interactive MFA can prevent unattended synthetic execution. Use an organization-approved synthetic authentication approach, such as:
-
Dedicated non-human account governed by compensating controls
-
Test identity-provider policy
-
Approved certificate-based authentication
-
Supported token mechanism
-
Non-production test authentication
Do not bypass MFA controls without explicit security approval.
📦 Manage test data
Synthetic business transactions must be repeatable.
Use one of these patterns:
|
Pattern |
|---|
|
Read-only lookup |
|
Reusable test record |
|
Unique test record followed by cleanup |
|
Record created in a non-production environment |
|
Transaction automatically reversed |
|
Test data reset before each run |
If the scenario creates or modifies data, define:
-
Naming convention
-
Maximum retained records
-
Cleanup process
-
Failure recovery
-
Ownership
-
Audit requirements
Avoid scenarios that create unlimited purchase requisitions, orders, users, invoices, or other production records.
💾 Save and review the recording
After recording:
-
Review every command.
-
Remove accidental actions.
-
Replace fragile selectors.
-
Replace fixed delays with explicit waits.
-
Add functional validations.
-
Replace literal credentials with secure references.
-
Remove sensitive values.
-
Add cleanup steps where appropriate.
-
Run the scenario several times locally.
-
Test it from a clean browser session.
A scenario is not ready for scheduling merely because the initial recording completed once.
☁️ Deploy the synthetic scenario
After validation:
-
Save or export the Selenium scenario.
-
Add it to the GermainUX synthetic-monitoring configuration.
-
Select the execution node.
-
Select the browser.
-
Configure the schedule.
-
Configure timeouts and retries.
-
Assign the application and environment.
-
Configure the credential references.
-
Configure screenshots and diagnostic capture.
-
Configure alerts.
-
Run an on-demand test.
-
Enable the schedule.
📍 Select an execution location
The synthetic node should represent the network path being tested.
Potential locations include:
-
Inside the corporate network
-
A regional office
-
A data center
-
A cloud region
-
A VPN-connected location
-
An externally accessible location
Use multiple locations when you need to distinguish an SAP application failure from a regional network, VPN, DNS, or proxy problem.
📅 Configure the schedule
Choose a frequency based on:
-
Business criticality
-
User operating hours
-
Expected outage-detection time
-
Scenario duration
-
SAP system capacity
-
Test-data impact
-
Authentication limits
-
Licensing constraints
Examples:
|
Scenario |
Example frequency |
|---|---|
|
Login and launchpad |
Every 5–15 minutes |
|
Critical read-only lookup |
Every 15–30 minutes |
|
Multi-step workflow |
Every 30–60 minutes |
|
Data-changing transaction |
Less frequently, based on approved test-data controls |
Avoid running many overlapping scenarios with the same account.
📈 Configure synthetic KPIs
Recommended KPIs include:
|
KPI |
Description |
|---|---|
|
Scenario Availability |
Percentage of scheduled executions completed successfully |
|
Scenario Duration |
Total execution time |
|
Step Duration |
Duration of an individual action or validation |
|
Scenario Failure |
Scenario that cannot complete |
|
Functional Validation Failure |
Expected SAP state or result was not found |
|
Login Duration |
Time required to authenticate |
|
Application Launch Duration |
Time required to open the target SAP application |
|
SLA Compliance |
Percentage of executions meeting the configured objective |
|
Execution Volume |
Number of scheduled executions |
Keep synthetic KPIs separate from real-user KPIs.
🔔 Configure alerts
Create alerts for actionable conditions such as:
-
Consecutive scenario failures
-
Login failure
-
Fiori launchpad unavailable
-
Required application missing
-
Functional validation failure
-
Scenario-duration degradation
-
Individual step exceeding its objective
-
Failure from multiple locations
-
New application error
Use consecutive-failure or multi-location rules to reduce alerts caused by isolated transient conditions.
An alert should include:
-
Scenario
-
Application and environment
-
Execution location
-
Failed step
-
Error or validation message
-
Duration
-
Timestamp
-
Screenshot or diagnostic link, when permitted
-
Link to the execution details
🔗 Correlate synthetic and operational telemetry
When RUM JS and the Engine are also deployed, correlate a synthetic failure with:
-
Browser requests
-
JavaScript errors
-
SAP API health
-
SAP log events
-
Integration failures
-
Database health
-
Host metrics
-
Deployment or maintenance events
Exclude the synthetic account from real-user adoption, productivity, and conversion reporting.
✅ Validate production deployment
Before enabling continuous execution, confirm that:
-
The scenario succeeds repeatedly from the selected node.
-
Credentials are retrieved securely.
-
Authentication works unattended.
-
Selectors remain stable.
-
Explicit waits handle normal SAP timing variation.
-
Functional validations detect incorrect results.
-
Screenshots exclude sensitive data.
-
Test data is cleaned up.
-
The account is identifiable as synthetic.
-
Synthetic sessions are excluded from real-user KPIs.
-
Failures trigger the intended alert.
-
Planned maintenance does not create unnecessary incidents.
🔧 Maintenance
Review scenarios after:
-
SAP upgrades
-
Fiori or SAPUI5 changes
-
Theme or layout changes
-
Authentication changes
-
Browser upgrades
-
Network or proxy changes
-
Business-process changes
-
Test-data changes
-
Role or permission changes
Maintain version history for each scenario and document why material changes were made.
🚑 Troubleshooting
⛔ Recording does not capture an action
The control may be:
-
Inside an iframe
-
Dynamically created
-
Implemented through a custom SAPUI5 event
-
Covered by another element
-
Opened in a new window
-
Not supported by the recorder’s automatic capture
Add or edit the corresponding Selenium step manually.
⚙️ Scenario works during recording but fails unattended
Check:
-
Dynamic selectors
-
Browser-window size
-
Browser version
-
Authentication state
-
Missing explicit waits
-
Execution-node network path
-
Test data
-
User permissions
-
Locale and time zone
-
Popups and consent messages
🔍 SAP element cannot be found
Replace generated IDs or absolute XPath with a stable semantic selector. Add an explicit wait for the control to become visible and enabled.
🐌 Scenario is slow but does not fail
Configure warning and critical duration thresholds for the scenario and individual steps. Functional success does not mean performance is acceptable.
⛔ MFA blocks execution
Use only an organization-approved synthetic authentication method. Do not place one-time codes or personal MFA credentials in the scenario.
♻️ Duplicate test records accumulate
Add cleanup logic, reuse a controlled record, or move the scenario to a non-production environment. Disable the schedule until data management is corrected.
👥 Synthetic activity appears as real-user activity
Filter or classify using:
-
Synthetic username
-
Execution-node address
-
Scenario metadata
-
Browser identifier
-
Dedicated application or environment attribute
📖 Related documentation
ℹ️ Get More Information
GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Salesforce Experience Cloud environment.
Component: Engine, RPA Bot Recorder
Feature Availability: 2022.1 or later