Features
SAP Test Automation Features — Playwright Plugin for S/4HANA & Fiori
From AI-powered test generation to enterprise observability — built for teams migrating to S/4HANA.
Agent-First Architecture
SKILL.md entry points let any AI agent — Copilot, Claude, Jules — discover capabilities, generate tests, and verify compliance autonomously. Agents connect via Playwright MCP or Playwright CLI.
SAP UI5 Native Control Access
ui5.control() with auto-retry, self-healing, and 3-tier API resolution. LTS 1.108, 1.120, 1.136. Uses UI5 control APIs, not brittle DOM selectors.
21 Fixtures, 199 Interfaces, 4,092 Methods
199 UI5 control types across 8 libraries — sap.m, sap.ui.table, sap.ui.comp, sap.uxap, sap.f, and more. Just destructure and go.
Playwright Native
Extends @playwright/test directly. Parallel execution, auto-wait, trace viewer, UI mode. Web-first assertions with zero compromise.
Enterprise Observability
OpenTelemetry tracing with Azure and AWS. Role-based quality reports, pino structured logging, compliance reporters, defect video and logs.
SAP Authentication & FLP
Built-in SAP auth flows, Fiori Launchpad navigation, SM12 lock management. Multi-system support for ECC and S/4HANA.
OData V2 & V4 Support
Full OData CRUD operations, batch processing, deep entity creation. Mock server support for hermetic testing.
Fiori Elements Helpers
List Report, Object Page, Analytical List Page. SmartTable, SmartFilterBar, SmartField — all typed and proxied.
Cross-Platform
Windows, macOS, Linux. CI runs on 3-OS matrix. node:path, node:fs/promises — no platform assumptions.
Structured Error Intelligence
Every error includes code, attempted action, retryable flag, and suggestions array. AI agents can self-heal from failures.
Dual ESM + CJS Output
tsup-built with conditional exports. Validated by attw. Works in any Node.js environment without configuration.
Agentic Test Generation
Plan, generate, and heal tests with Praman SAP agents. Available as MCP agents (JSON-RPC) and Playwright CLI agents (stdin/stdout). Seed-based auth, live browser validation, 7 mandatory compliance rules.
Azure Playwright Workspaces
Run SAP E2E tests at scale with cloud-hosted browsers. GitHub Actions + Azure = fully automated pipeline. No local machine required.
Comparison
Feature Parity Comparison
Comprehensive comparison of SAP UI5 test automation capabilities. Playwright Native retains advantages in speed, ecosystem, and visual testing.
| Feature | Playwright Native | Playwright + Praman |
|---|---|---|
| General Test Automation | ||
| Modern async/await syntax | ✓ | ✓ |
| TypeScript support | ✓ Native, strict | ✓ Strict + branded types |
| Parallel execution | ✓ Workers | ✓ Workers |
| Auto-wait for elements | ✓ Web-first assertions | ✓ Web-first + UI5 stability |
| Visual regression testing | ✓ Native screenshots | ✓ Native (Playwright) |
| Network interception | ✓ Full page.route() | ✓ Full + analytics blocking |
| Multi-browser support | ✓ Chrome / Firefox / WebKit | ✓ Chrome / Firefox / WebKit |
| Control Discovery & Interaction | ||
| UI5 control selector engine | ✗ | ✓ ui5= engine, 4-tier strategy |
| Discovery strategy depth | ✗ | ✓ Cache → ID → RecordReplay → registry |
| Control result caching | ✗ | ✓ LRU 200 entries, 5 s TTL, automatic |
| Typed UI5 control interfaces | ✗ | ✓ 199 controls, 4,092 methods |
| SmartField / MDC inner control | ✗ | ✓ SmartField, SmartFilterBar, mdc.Field, mdc.ValueHelp |
| Interaction strategy selection | ✗ | ✓ UI5-native / DOM-first / OPA5 |
| OPA5-standard interaction | ✗ | ✓ RecordReplay API (selectable) |
| Direct UI5 method access | ✗ page.evaluate only | ✓ Typed proxy + exec() |
| Method safety blacklist | ✗ | ✓ 71 static + 2 dynamic rules |
| Control metadata introspection | ✗ | ✓ getControlMetadata(), retrieveMembers() |
| Auto-wait for UI5 stability | ✗ | ✓ 3-tier: bootstrap → stable → DOM settle |
| Dialog auto-discovery | ✗ | ✓ 10 dialog types via sap-ui-static |
| UI5-specific custom assertions | ✗ | ✓ 10 matchers: ValueState, Binding, RowCount… |
| Table variants supported | ✗ | ✓ 6 variants incl. SmartTable, mdc.Table |
| UI5 control tree / page discovery | ✗ | ✓ discoverPage() → PageContext |
| UI5 bridge injection | ✗ | ✓ |
| UI5 version compatibility | ✗ | ✓ 1.71+ |
| SAP Authentication | ||
| SAP Cloud (SAML / OAuth) | ✗ Manual | ✓ Built-in, 6 strategies |
| SAP On-Premise (NetWeaver) | ✗ Manual | ✓ Basic auth, auto-detect |
| Session persistence | ✓ storageState | ✓ storageState + SAP tokens |
| Auth strategy auto-detection | ✗ | ✓ detectSystemType() |
| Custom auth strategy plug-in | ✗ | ✓ registerAuthStrategy() |
| Fiori Launchpad | ||
| Tile navigation | ✗ Manual DOM | ✓ navigateToTile() by title |
| Intent-based navigation | ✗ | ✓ navigateToIntent() with params |
| Shell search & open app | ✗ | ✓ searchAndOpenApp() |
| FLP user locale / settings | ✗ | ✓ getLanguage(), getDateFormat()… |
| SM12 lock management | ✗ | ✓ getLockEntries(), auto-cleanup |
| BTP WorkZone frame support | ✗ | ✓ btpWorkZone fixture |
| OData / Backend Testing | ||
| OData CRUD operations | ✗ fetch / axios manual | ✓ queryEntities, create, update, delete |
| Query params ($filter…) | ✗ | ✓ $filter, $select, $expand, $orderby |
| CSRF token + ETag handling | ✗ | ✓ Automatic |
| Model-level data access | ✗ | ✓ getModelData(), waitForODataLoad() |
| OData trace reporter | ✗ | ✓ Per-entity-set call analytics |
| AI & Test Intelligence | ||
| AI-first fixture design | ✗ | ✓ Capability & recipe registries, SKILL.md |
| SAP domain intent APIs | ✗ | ✓ 5 domains: procurement, sales, finance, mfg, master data |
| SAP vocabulary service | ✗ | ✓ 6 domains, fuzzy match, field → selector |
| Agentic test generation | ✗ | ✓ generateTest(), checkpoint, suggestActions() |
| LLM provider abstraction | ✗ | ✓ Claude / OpenAI / Azure OpenAI |
| Fiori Elements test helpers | ✗ | ✓ listReport, objectPage, FE test library |
| Compliance reporter | ✗ | ✓ Step categorisation, compliance % |
| LLM-friendly docs (llms.txt) | ✗ | ✓ llmstxt.org standard, 4 topic files |
| Developer Experience | ||
| Setup CLI | ✗ | ✓ npx playwright-praman init |
| Doctor / diagnostics CLI | ✗ | ✓ npx playwright-praman doctor |
| MCP agents | ✗ | ✓ praman-sap-planner, generator, healer (MCP) |
| Playwright CLI agents | ✗ | ✓ praman-sap-planner-cli, generator-cli, healer-cli |
| Structured error codes | ⚠ JS Error only | ✓ 14 classes, 67 codes, suggestions[] |
| API documentation | ✓ Full docs | ✓ TSDoc + API Extractor |
| Playwright fixture pattern | ✓ test.extend() | ✓ 17 fixtures, 5 auto-fixtures |
| Cloud & CI/CD | ||
| Azure Playwright Workspaces | ✓ Full support | ✓ Full support — all features work remotely |
| Cloud-hosted browsers | ✓ connectOptions | ✓ Transparent — fixtures, proxy, bridge all work |
| GitHub Actions CI | ✓ Standard | ✓ Pre-built workflow + Azure integration |
| Zero local machine pipeline | ✓ With GitHub Actions | ✓ GitHub + Azure = fully automated SAP testing |
| Scale to 100 parallel workers | ✓ Azure Workspaces limit | ✓ Per-app parallelism for SAP tests |
| SAP on-prem via exposeNetwork | ✗ Manual proxy config | ✓ Built-in exposeNetwork patterns |
| Performance | ||
| Test execution speed | ⚡ Fast — native browser | ⚡ Fast — Playwright-based |
| Browser startup time | ⚡ Fast | ⚡ Fast |
| Parallel execution efficiency | ✓ High — workers | ✓ High — workers |