v0.8.5 on PyPI · Open source Apache 2.0 · Robot Framework 7.4+ · Python 3.10+

SAPFX · Open-source SAP test automation for Robot Framework

SAPFX (package robotframework-sapfx) is a set of open-source Robot Framework libraries (Apache 2.0) to automate SAP testing on four channels: SAP GUI for Windows (SAP ECC and SAP S/4HANA® systems), SAP Fiori® apps and SAPUI5 as well as SAP GUI for HTML, OData APIs v2 and v4, and RFC/BAPI. Each channel keeps its native locators and the rules are shared; a single test can cross two or three of them: prepare through the API, act on the screen, check through an independent channel. For teams that lose CBTA when maintenance of SAP Solution Manager 7.2 ends in 2027, it is an open path, with no license.

> pip install robotframework-sapfx
462
Scenarios run live
On 4 real SAP systems, from Jul 12 to Oct 13, 2026
442
Documented keywords
195 SAP GUI · 98 web · 149 API
3959
Unit tests
Replayed outside SAP in continuous integration
95%
Code coverage
Measured, 85% floor enforced in CI
The situation · 2027 deadline

Testing SAP in 2026: one deadline and three difficulties

Mainstream maintenance of SAP Solution Manager 7.2 ends on December 31, 2027, and CBTA with it. At the same time, SAP landscapes mix the classic screen, SAP Fiori apps and APIs.

The end of CBTA in 2027

SAP Solution Manager 7.2 leaves mainstream maintenance on December 31, 2027 (SAP Note 3585220) and SAP is steering its customers toward SAP Cloud ALM, which manages and tracks tests; their automated execution goes through tools that connect to it. Existing CBTA scenarios must therefore be taken over in another tool.

Tests that break with every upgrade

A renumbered screen identifier, an SAPUI5 control rendered differently, a translated label: a test written against the layout breaks at the first support package. SAPFX targets controls by their type, their label or their key, and its locator repairs are always logged, never silent.

Three technologies, often three tools

SAP GUI for Windows, SAP Fiori apps in the browser, OData and RFC APIs: each has its own tools, skills and reports. SAPFX brings them together in Robot Framework, with the same rules, the same runner and the same report, with no license per execution machine.

Use cases

What SAPFX automates today

Six uses proven live on SAP development systems (ABAP Platform 1909 and 2023), each linked to its evidence on the SAPFX in pictures page.

Regression

SAP regression tests before an upgrade

The same campaign is replayed on two releases by changing only variables: the price of a product read through three channels was validated 7/7 on release 754 and 7/7 on release 758. Each campaign starts by proving the release and the kernel of the target system. From ECC to S/4HANA: the method.

Get System IdentityTwo releases
Replacing CBTA

Take over CBTA or eCATT scenarios

The scenarios are rewritten in Robot Framework, in a text format that you version and review. A migration guide from CBTA comes with the libraries; the recorders produce a first draft of a journey.

Migration guideRecorders
End to end

End-to-end business processes, across several channels

A Business Partner role added on screen and confirmed in the database, a background job scheduled with SM36 and its spool read through RFC, an outbound IDoc judged by its status and its inbound counterpart found: each step is checked by a channel independent of the one that acts.

Business PartnerJobs and spoolIDoc
Cross-check

Check a piece of data through two or three channels

The number of products counted in SE16 equals the OData $count (205 = 205), the counter of a launchpad tile equals the aggregate of a CDS view read through RFC (19 = 19). Replayed on October 5, 2026.

Screen + APILaunchpad + RFC
Extraction

Extract an SAP table to CSV, Excel, JSON Lines, SVG or Parquet

An ALV grid, a WebGUI grid, an SAPUI5 table or a table read through RFC return the same shape, written then read back in five formats. A truncated read is rejected: on three of these channels, nothing in the rows betrays that some are missing.

Table Extract Should Be Complete5 formats
Security

Audit the security configuration of an ABAP system

Profile parameters judged on their return code, accounts that can really be used, web services actually served, audit log coverage, drift compared with a reference: read-only, through RFC.

Read Profile ParametersRead-only
Architecture

Three libraries, four channels, shared rules

The libraries do not merge the technologies: each keeps the locators of its channel, and they share rules (wait for the real state of SAP, judge a message by its identity, extract a table without losing a row, log every repair). The business vocabulary is built above, in the project's Robot Framework keywords.

SapEccLibrary · 195 keywords

SAP GUI for Windows

Through the SAP GUI Scripting API: ALV grids read in full, table controls, trees, drop-down lists by key, locators by visible label, annotated screenshot for AI agents, visual assertions, several sessions by alias. See it in pictures.

Read Full GridFill Field By LabelGet Screen Map
SapFioriLibrary · 98 keywords

SAP Fiori, SAPUI5 and SAP GUI for HTML

On top of the Browser library (Playwright): UI5 controls addressed by type and properties, real page idleness, launchpad by intent and tile counters, WebGUI by SID, UI5 Web Components, nested iframes. See it in pictures.

Wait For Ui5 IdleOpen Fiori AppRead Webgui Grid
SapApiLibrary · 149 keywords

OData v2/v4 and RFC/BAPI

OData with SAP's CSRF protocol, $metadata and its labels, $batch, test data factory; optional RFC through pyrfc: tables, BAPIs judged by message type, background jobs and spool, IDoc. See the examples.

Get Odata CountCall BapiWait For Idoc Status
The strength of hybrid testing

One test, two or three channels

Here, the same product is read through the OData service, through the SE16 grid of the WebGUI and through RFC, and the three prices are compared with each other, after normalizing the user's decimal notation read on the system. Real excerpt of the suite, validated 7/7 on releases 754 and 758, replayed 7/7 on October 5, 2026.

tests/robot/cross/cycle_vie_produit_epm_trois_canaux.robot
6. Assertion reine : les trois canaux rendent le même prix
    # …
    ${prix}=    The Three Channels Should Agree On The Price
    ...    ${API_RECORD}    ${WEBGUI_RECORD}    ${RFC_RECORD}
    ...    ${DECIMAL_NOTATION}
    ${devise}=    The Three Channels Should Agree On The Currency
    ...    ${API_RECORD}    ${WEBGUI_RECORD}    ${RFC_RECORD}
resources/page_objects/sepmra_prod_man.resource
Read Epm Products By Api
    # …
    ${projection}=    Set Variable
    ...    ${EPM_PRODUCT_API_ID_FIELD},${EPM_PRODUCT_API_PRICE_FIELD},${EPM_PRODUCT_API_CURRENCY_FIELD}
    ${chemin}=    Set Variable    ${EPM_PROD_MAN_SERVICE}/${EPM_PRODUCT_ENTITY_SET}
    IF    '${top}' == '${EMPTY}'
        ${entites}=    Get Odata Entities    ${chemin}    alias=${alias}
        ...    $filter=${critere}    $select=${projection}    $orderby=${EPM_PRODUCT_API_ID_FIELD}
# …
Read Epm Product By Webgui
    # …
    [Arguments]    ${product}    ${url}
    Open WebGui Data Browser    ${url}
    Display WebGui Table Contents With Filter    ${EPM_PRODUCT_TABLE}
    ...    ${EPM_PRODUCT_KEY_COLUMN}=${product}
    ${extrait}=    Extract Displayed WebGui Grid
    ...    key=${EPM_PRODUCT_KEY_COLUMN}
    ...    source=produits EPM (${EPM_PRODUCT_TABLE}) filtrés sur ${product}
    Table Extract Should Be Complete    ${extrait}
# …
Read Epm Product By Rfc
    # …
    [Arguments]    ${product}    ${alias}=${RFC_ALIAS}
    ${lignes}=    Read Business Records    ${EPM_PRODUCT_TABLE}
    ...    ${EPM_PRODUCT_COLUMNS}
    ...    filter=${EPM_PRODUCT_KEY_COLUMN} EQ '${product}'    alias=${alias}
SAP GUI + OData: 205 = 205 Launchpad + RFC: 19 = 19 SAP GUI + RFC: Business Partner role SAP GUI + RFC: SM36 job and spool RFC + SAP GUI: IDoc 03 then 53

The nine hybrid tests, with their screenshots and their code: SAPFX in pictures.

Change impact analysis · Human in the loop

A transport lands: which tests should you replay, and why?

Replaying everything ties up the whole campaign; choosing from memory lets a regression through. The SAPFX change impact analysis reads the transport in the SAP system, follows each object to what uses it, then crosses the names with your Robot Framework suites by what each test really executes, not by what a file mentions. It proposes, with the proof of every line; a human decides, and the decision is recorded.

1

1. Open the transport

The request and its tasks, where objects live until release. Each line is brought back to its main object: a method to its class, an include to its program, a table entry to its table. Over RFC, read only: nothing is installed on the SAP side.

2

2. Read one level of use in the system

In the references SAP keeps up to date: programs, transactions, CDS views, classes, function modules, dictionary elements, OData services. Measured on S/4HANA 1909: table TTZCU is read by 89 programs, started by 5 transactions including ST03. A capped read says so, never silently (T000: 2,793 programs).

3

3. Cross with your suites, by what they execute

Each suite is read by the Robot Framework parser, with nothing executed: from keyword to keyword through its resources, its variables, its Python libraries and its variable files. It carries its reach: called, dynamic (a computed name is never taken for "not called") or only named, with the tests and the plan concerned.

4

4. A human decides, and it is recorded

For each suite: replay or skip. A skip needs a reason, and every decision says who took it. The decision file is bound to the impact's fingerprint: faced with another transport, a decision is stale, never applied. As long as a suite that executes a transported object has not been skipped, the command exits with code 1: a CI pipeline cannot ignore it.

Time

5 suites to replay instead of 22

On the flight reference transport (113 objects), a text search finds 22 suites; 5 really execute a transported object. The other 17 name it without executing it: the human skips them, with their reason. Ten validation tests, each on a real transport, run in 18 seconds.

Quality

682 points checked, none missed

The static graph was checked against a real Robot Framework dry run: 682 points, no keyword entered outside the graph. What the analysis cannot see (more than one level, dynamic SQL, object-oriented transactions, an unresolved import), the report says.

Traceability

One decision, one reason, one name

The report carries the human decision in a "Human decisions" section, next to the proof of every proposed suite. A decision only covers the impact it saw: that is what makes it verifiable afterwards.

Read only over RFC Validated 10/10 on releases 754 and 758 Markdown report and exit code Decision bound to the impact's fingerprint

A first version, said as such

The analysis proposes, a human decides: no list of suites proves the absence of impact, and the report says so. One level of use, static references. Validated on 9 October 2026 on two SAP development systems (S/4HANA 1909 and ABAP Platform 2023), it ships in version 0.8.5 of the libraries, on PyPI since 13 October 2026.

Version 0.8.5 · Published on 13 October 2026

New in 0.8.5: write under control, judge a run, check a certificate

Six capabilities, proven on the laboratory's SAP development systems (S/4HANA 1909 and ABAP Platform 2023), ship in version 0.8.5 of the libraries, on PyPI since 13 October 2026. Each card says what is proven and what is not.

Governance

A policy decides before the write gesture

Three modes on the screen, OData and RFC channels: "read only" refuses every write, "explore" requires an approval consumed by a single gesture, "full" lets writes through and logs them. The refusal comes before the gesture: nothing is sent to SAP. An audit trail keeps every decision, never a value. Validated 12/12 on releases 754 and 758, with the same 30 audit decisions. An operational guardrail, not a security control: the barrier remains the SAP authorization of the test user.

Human in the loop

A human approves a write, for one target

In "human" mode the agent can no longer approve itself. The approval comes from a person, who sees the reason, the target, the system, the client and the screen, and who must type the word "approuver": a click is not enough. It covers one target only: a gesture elsewhere is refused. Every other case (refusal, cancellation, a workstation without a display) fails closed. Depending on the MCP client, the request is shown through the protocol or through an input box on the workstation. Validated in front of the workstation, then through the rf-mcp server on both releases.

Delivery

A GO or NO-GO verdict, computed on the run

From Robot Framework's results file: tests executed, failures, skips without a reason (including a failure disguised as a skip), error screenshots in a green test, locators healed during the run, plans changed since generation. Three profiles (strict, standard, ramp-up), explicit criteria, never a magic number. A criterion that cannot be read is listed first as not measured, never counted as zero. Exit code 0, 1 or 2 and a Markdown report. Proven on the real results of the day's campaigns; no numeric score yet, it waits for the criteria to be used.

Security

Is the declared certificate valid and really served?

The certificate of the STRUST identity, read over RFC, is compared by its SHA-256 fingerprint with the one the server presents on the wire, and the ICM services are read with their state. Five expiry verdicts, only one passes. An identity without a certificate raises no error on the SAP side: SAPFX refuses it instead of reading it as valid. Validated 7/7 on ABAP Platform 2023, read only. The two laboratory containers carry the same certificate: only the release proves the target.

Authorizations

Test users and roles, created then deleted

Over RFC, with an allowlist of prefixes, a mandatory marker before any gesture on an existing object, never in client 000 and never on a role delivered by SAP. An explicit role with its generated and checked profile, a password made productive by the user themselves, then the kernel's authorization check for a named user. Campaign validated 11/11: on the EPM sales order demo application, the only refusal observed is the one at transaction start, not at save, and the finding is recorded in an anomaly report.

Supervision

One error, one entry in the Gateway log

The Gateway error log groups identical errors: counting its entries before and after a call proves nothing. The campaign proves one new entry, tied to the response received by the transaction identifier, served in the right client, then found again on screen. An invented service is refused with 403, not 404. Validated 7/7 on S/4HANA 1909, writing nothing to the configuration.

Date and time read in the user's format An expected failure no longer leaves a screenshot Column icons read in ABAP lists Nature of an OData service Spaces and Pages mode of the launchpad Authorization failures read in SU53 System interfaces surveyed over RFC Background job scheduled through XBP 62 more keywords (442 in total) 3,959 unit tests

Said as such

Proven from 7 to 13 October 2026 on two SAP development systems, published in version 0.8.5 of the libraries. Figures of the 0.8.5 evidence manifest: 3,959 unit tests, 95% coverage, 442 keywords, each with a usage example, and 462 scenarios run live on the four SAP systems. The approval tool over the MCP protocol belongs to the workshop overlay, not to the PyPI package; the session policy is an operational guardrail, not a security control.

Workbench tools · Optional

Recorders, AI agents, maintenance: the workbench tools, optional

Around the free libraries, ten tools write, delegate and maintain your tests, and map your system. They are not in the PyPI package: they are delivered on quote, and what they produce remains ordinary Robot Framework that runs without them.

Recorders

Walk through a process, get a test

In SAP GUI for Windows as in the browser (SAP Fiori, WebGUI), the process becomes a replayable suite, a « resource and suite » pair, a plan, ISTQB test cases and an HTML report. See the recorders.

SAP GUIChrome extension5 exports
Prompt Eval

Score a request before the agents

A test request is a prompt: its form and template share are checked without any model call, eight criteria are judged by a model, local by default, and a read-only RFC probe says whether the SAP objects it names exist. See Prompt Eval.

8 criteriaRFC probeNew
AI agents

Plan, generate, repair, review

Five agents in Claude Code or GitHub Copilot, bounded by a mission contract, a permission hook and a handover trail for resuming after an interruption; they are presented just below. See their framework.

5 agentsMission contractsapfx skill
MCP bridge

An AI assistant that sees the SAP screen

Three plugins for the rf-mcp server and the sapfx-mcp overlay: the SAP screen as text, as a diff or as an annotated image, the state read live, and approval by a human of a write to SAP. See the MCP bridge.

sapfx_statesapfx_screenshotsapfx_approve_write
Maintenance

See the drift before the failure

A sentinel suite to schedule, a drift report drawn from the healing telemetry, plan and convention guards; fixes touch only the resources layer. See the maintenance tools.

SentinelDrift report
Landscape map

What is connected to your SAP, and what is active

A read-only RFC survey, reconciled by a rule with your application map and your interface register: two A3 plates, a report, one verdict per interface and, for each gap, its proof captured in SAP GUI. See the landscape map.

Read onlyA3 platesNew
Business layer

Business keywords to adapt

Nine vocabularies, twenty-five page objects and twelve example suites, measured on our development systems: examples to customise, not a universal vocabulary. See the business layer.

Page objects12 example suites
Windows pack

A test workstation ready with one command

A self-contained ZIP: pinned versions, integrity checked, MCP configuration written, optional RFC channel through the runtime SAP GUI 8.00 already installs. See the pack.

install.cmdSHA-256

Included or optional

Included and free: the three libraries, their 442 keywords and their documentation, on PyPI. Optional, on quote: the workbench tools, delivered as a Windows deployment pack, with their installation, training and adaptation to your screens within the scope of the quote. No figure of gain is claimed: what is measured are the campaigns played on our development systems.

AI agents · MCP

Five specialized SAP AI agents, under human control

The agents drive SAP through the rf-mcp MCP server and the SAPFX plugins, in Claude Code or GitHub Copilot. They are part of the SAPFX workbench, optional, not of the PyPI package, which carries the libraries. To see them at work: the film “How AI agents drive SAP” (8 min 20).

01 · Exploration specs/

sap-planner · Explore and write the plan

Confronts the request, written in human language, with the real SAP system by perceiving it screen by screen, and writes an observed test plan, never an assumed one, reviewed by a human.

02 · Generation tests/

sap-generator · Execute before writing

Executes each step on the SAP system before writing it into the Robot Framework suite, and seals the suite with the fingerprint of its plan: a plan changed without regeneration is rejected.

03 · Repair resources/

sap-healer · Repair the resources layer

Reproduces a failure, verifies the fix on the system and repairs the business keyword layer, never the test or its assertions; each repair is recorded in a journal.

04 · Verification read-only

sap-verifier · Independent review

Reviews a generated or repaired suite, read-only, against its business invariant and its evidence: weakened assertion, skipped failure, wrong target or unproven result.

05 · ISTQB specs/istqb/

sap-istqb · Design and review

Writes test plans and test cases structured according to ISTQB and the ISO/IEC/IEEE 29119-3 standard, with a replay block readable by any tool, and reviews the design of each generated suite.

No silent repair

In the libraries, a repaired locator comes with a warning in the Robot Framework log and, if enabled, a line in a telemetry log (SAPFX_HEALING_LOG). The sap-healer agent, for its part, only modifies the resources layer and records each diagnosis. The test assertions are never touched.

Spec-Test-Driven Development (STDD): the spec in human language drives the test, the test drives the libraries

The specification is a broad vision in human language, structured or not (business goal, user story, BDD scenario, existing test file); sap-planner confronts it with your SAP system and writes its observed version under specs/; sap-generator derives the suite from it, every step executed live and sealed with the SHA256 fingerprint of the plan; and what a test needs that the libraries cannot do yet becomes a SAPFX keyword, never a workaround in a suite. The same logic as TDD, one brick earlier: the spec, green by default in theory, is confronted with the real system before any test. Method defined in rf-test-agents and shared with ODOOFX; definition in the glossary. To see it at work on a real SAP case: the STDD film (8 min 34).

Choosing with full knowledge

When SAPFX fits, and when it does not

Families of SAP testing tools have neither the same scope nor the same model. This table places them without naming any; it also states our limits.

Tool family SAP GUI SAP Fiori / SAPUI5 OData / RFC License Test format
The market's proprietary testing suites Yes Yes Depends on the offer Commercial Often codeless, vendor format
Automation tool built into SAP S/4HANA Cloud Public Edition No Yes Yes Included with the cloud edition SAP standard scenarios, codeless
Existing open-source libraries for testing SAP GUI Yes No No Open source Robot Framework
SAPUI5 test frameworks in JavaScript No Yes No Open source JavaScript or TypeScript code
SAPFX Yes Yes, and SAP GUI for HTML Yes Apache 2.0, €0 Robot Framework, business keywords

SAPFX fits if:

  • ✓your tests must cross SAP GUI, SAP Fiori and the APIs in a single scenario;
  • ✓you want readable tests, versioned and run in your own continuous integration;
  • ✓your team already uses Robot Framework, or is willing to learn it;
  • ✓you are looking for a successor to CBTA with no license per execution machine.

SAPFX does not fit if:

  • ×you require a drag-and-drop graphical editor: SAPFX has none, a test is written as Robot Framework keywords that read without programming, and the recorders produce a draft;
  • ×your users work with SAP GUI for Java or on macOS: SapEccLibrary drives SAP GUI for Windows;
  • ×you only use SAP S/4HANA Cloud Public Edition, whose built-in automation tool already covers the standard scenarios;
  • ×you require contractual support from a software vendor: SAPFX is an independent open-source project, supported by AI Cabra on quote.
Support · On quote

Our services around SAPFX

The libraries are open source and free of charge. AI Cabra supports their implementation, on quote, within a scope defined together.

Migration from CBTA, eCATT or a proprietary suite

Inventory of your scenarios, prioritization by business domain and rewriting in Robot Framework with SAPFX. We support you directly or refer you to specialized partner integrators.

Scope a migration →

Integration into your CI/CD chain

Running the suites in your pipelines (GitLab CI, GitHub Actions, Jenkins), on your own machines: a Windows machine for SAP GUI, any machine for SAP Fiori and the APIs. Robot Framework reports archived and shared.

Scope an integration →

Maintenance and enhancements

Follow-up of your suites through SAP upgrades, development of keywords for your transactions and your custom developments, with their unit tests and their documentation.

Discuss your needs →

Team training

Robot Framework, the architecture of the libraries, writing business keywords, the recorders and the AI agents, on your own transactions and processes.

Organize a training session →
Pilot project · On quote

Try SAPFX on your own SAP flows

Before any decision, a pilot on a process representative of your system (for example an end-to-end order, on screen and through the API) shows what SAPFX covers for you and what would need to be built.

Scope defined together

One or two processes, a duration and objectives set before starting.

Your system, your rules

On a development or acceptance system, with your access rights and your security constraints.

Deliverables that are yours

Suites, business keywords and documentation belong to you.

Request pilot scoping
Beyond testing

Writing, deleting, cross-checking: what the tool can do besides testing

A tool that can write a record, read it back through a second channel, delete it and confirm it is gone is useful for more than checking a system. Three uses open up. They are presented as a direction: what is proven and what remains to be built are stated side by side.

Generate test data sets

Create complete, consistent data sets, identifiable as test data, to feed test campaigns.

Status: direction, in the very short term. Already in place: the test data factory of the API channel and the creation cycles through the screen and through RFC.

Populate databases for performance testing

Populate empty or incomplete SAP databases before running a load campaign.

Status: direction. No volume campaign has been run and no loading time has been measured to date.

Configure and migrate data

Load complex business data to configure a target environment, or secure a data injection during a major migration, for example from ECC to S/4HANA, while checking the result through a second channel.

Status: direction. Writing, deleting and cross-checking through two channels are validated live; no migration has been run.

Proven today on SAP development systems. On a customer system, each target is handled case by case, reversibility first. SAPFX does not present itself as a replacement for SAP's migration tools: it brings scripted loading and its cross-check.

Frequently asked questions

Automating SAP tests with Robot Framework: the questions we are asked

The short answers; the details are in the FAQ and the keyword documentation.

What is SAPFX?

SAPFX (package robotframework-sapfx, version 0.8.5 on PyPI) is a set of three open-source Robot Framework libraries under the Apache 2.0 license to automate SAP testing: SapEccLibrary for SAP GUI for Windows, SapFioriLibrary for SAP Fiori apps, SAPUI5 and SAP GUI for HTML, SapApiLibrary for OData and RFC/BAPI. A single test can cross several of these channels.

Which Robot Framework libraries can automate SAP GUI?

SapEccLibrary, the SAP GUI library of SAPFX, drives SAP GUI for Windows through the SAP GUI Scripting API. It stays compatible with an existing open-source library, whose keywords it keeps, and counts 195 keywords: ALV grids read in full, table controls, trees, fields addressed by their label, proof of the target system, annotated screenshots for AI agents.

How do you test an SAP Fiori app with Robot Framework?

With SapFioriLibrary, on top of the Browser library (Playwright): SAPUI5 controls are addressed by their type and properties instead of generated DOM identifiers, Wait For Ui5 Idle waits until the page is truly idle, and launchpad apps open by their intent. The public OpenUI5 Demo Kit is enough to try it, with no SAP system.

Is there an open-source alternative to CBTA before the end of 2027?

SAPFX is one: CBTA scenarios are rewritten in Robot Framework, on SAP GUI, SAP Fiori and the APIs, with no license. Mainstream maintenance of SAP Solution Manager 7.2, which carries CBTA, ends on December 31, 2027. A migration guide from CBTA comes with the libraries; the rewrite remains real work, which we can support on quote.

Is SAPFX free?

Yes. The libraries are under the Apache 2.0 license: no license to pay, whatever the number of users or execution machines, commercial use included. AI Cabra offers support, migration and training services on quote.

Can you try SAPFX without an SAP system?

Yes, in part. SapFioriLibrary can be tried on the public OpenUI5 Demo Kit or on an SAP Fiori Elements app served locally. For SAP GUI and the APIs, the free ABAP Platform Trial Docker image provides a complete SAP system on a workstation.

Can an AI agent drive SAP with SAPFX?

Yes. The SAPFX plugins for the rf-mcp MCP server give an agent (Claude Code, GitHub Copilot) the perception of the SAP screen and step-by-step execution of keywords. Five specialized agents plan, generate, repair, verify and document the tests, under human control. Prompt Eval scores the test request before the agents work on it, and a write to SAP can require a human's approval (MCP tool sapfx_approve_write). They are part of the SAPFX workbench, not of the PyPI package.

Are the SAPFX tools included in the PyPI package?

No. The package carries the three libraries, free. The workbench tools (SAP GUI and web recorders, request scoring with Prompt Eval, AI agents and their contract, MCP plugins, preventive maintenance, example business layer, Windows pack) are optional and delivered on quote; what they produce remains ordinary Robot Framework that runs without them.

Can a single test check SAP GUI, SAP Fiori and the APIs?

Yes, that is hybrid testing: a test prepares through the API, acts on the screen and checks through an independent channel. Examples replayed on October 5, 2026: 205 products counted by SE16 and by OData, 19 orders shown by a launchpad tile and counted through RFC on a CDS view, the same price read through OData, the WebGUI and RFC.

How do you know which SAP tests to replay after a transport?

With the SAPFX change impact analysis, published in version 0.8.5 of the libraries (13 October 2026) and validated on 9 October 2026 on S/4HANA 1909 and ABAP Platform 2023. It reads the transport over RFC, read only, follows each object over one level of use (programs, transactions, CDS views, classes, function modules), then crosses the names with the Robot Framework suites by what each test really executes. A human then decides, suite by suite, to replay or to skip with a reason, and the decision is recorded, bound to the impact's fingerprint. On the flight reference transport, a text search finds 22 suites; 5 execute a transported object. No list of suites proves the absence of impact.

What does SAPFX 0.8.5 bring?

Published on PyPI on 13 October 2026, it brings capabilities proven from 7 to 13 October 2026 on S/4HANA 1909 and ABAP Platform 2023: a session policy that decides before any write gesture (read only, explore, full) with an audit trail; the approval of a write by a human, bound to one target; a GO or NO-GO verdict computed on a run's results file; the check of the SSL certificate declared in STRUST and of the one the ICM really serves; test users and roles created then deleted over RFC; supervision of the Gateway error log; the change impact analysis of a transport; the nature of an OData service proven by its markers, the Spaces and Pages mode of the launchpad and the authorization failures read in SU53. Figures of 0.8.5: 442 keywords, each with a usage example, 3,959 unit tests, 462 scenarios run live.

Does SAPFX work with SAP GUI for Java?

No. SapEccLibrary drives SAP GUI for Windows through the SAP GUI Scripting API. A system reachable through SAP GUI for HTML is tested with SapFioriLibrary, in the browser.

Evidence & scope

Measured results and validation scope

Test SAP GUI, Fiori and OData/RFC APIs with Robot Framework. Reviewed on 13 October 2026. Published sources and measurement conditions are listed below.

Published case: one price read through three channels

EPM laboratory case: OData, WebGUI SE16 and RFC, with target verification followed by value comparison. 7/7 scenarios on each ABAP 754 and 758 release on 21 September 2026, replayed 7/7 on 5 October 2026. Limit: read-only, with no evidence of customer productivity gain.

Read the published release evidence
In conclusion · 11 min 11

The SAPFX mindset: seven principles, a toolbox, what it changes

To close, the mindset that shapes SAPFX in a single film: seven principles backed by real cases, the toolbox, and what it changes, without hiding what is still missing (vendor support, graphical editor).

The SAPFX mindset · 11 min 11 · synthetic voice, captions burned in. The characters of the earlier films (Stedd, MCP, Terra, qa-brain) welcome three newcomers: You (the human who decides), RF (Robot Framework at run time) and Gate (the mechanical guards). Each principle ends with a “Remember” card.

Audit & Scoping

Ready to secure your SAP release cycles and anticipate the CBTA 2027 deadline?

Talk directly with our architects to audit your existing test suite, prepare to replace CBTA or a proprietary suite, or scope a pilot on your business flows. Services on quote.

  • A technical exchange, not a sales pitch
  • Your data stays in France
Step-by-step tutorial

or straight by email: