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

SAPFX · Automatisation des tests SAP open source pour Robot Framework

SAPFX (paquet robotframework-sapfx) est un ensemble de bibliothèques Robot Framework open source (Apache 2.0) pour automatiser les tests SAP sur quatre canaux : SAP GUI pour Windows (systèmes SAP ECC et SAP S/4HANA®), les applications SAP Fiori® et SAPUI5 ainsi que SAP GUI for HTML, les API OData v2 et v4, et le RFC/BAPI. Chaque canal garde ses localisateurs natifs et les règles sont communes ; un même test peut en traverser deux ou trois : préparer par l'API, agir à l'écran, vérifier par un canal indépendant. Pour les équipes qui perdent CBTA avec la fin de maintenance de SAP Solution Manager 7.2 en 2027, c'est une voie ouverte et sans licence.

> pip install robotframework-sapfx
462
Scénarios joués en direct
Sur 4 systèmes SAP réels, du 12/07 au 13/10/2026
442
Keywords documentés
195 SAP GUI · 98 web · 149 API
3959
Tests unitaires
Rejoués hors SAP en intégration continue
95%
Couverture de code
Mesurée, plancher de 85 % imposé en CI
Le constat · Échéance 2027

Tester SAP en 2026 : une échéance et trois difficultés

La maintenance standard de SAP Solution Manager 7.2 s'arrête le 31 décembre 2027, et CBTA avec elle. Au même moment, les paysages SAP mêlent l'écran classique, les applications SAP Fiori et les API.

La fin de CBTA en 2027

SAP Solution Manager 7.2 sort de sa maintenance standard le 31 décembre 2027 (note SAP 3585220) et SAP oriente ses clients vers SAP Cloud ALM, qui gère et suit les tests ; leur exécution automatisée passe par des outils qui s'y raccordent. Les scénarios CBTA existants doivent donc être repris dans un autre outil.

Des tests qui cassent à chaque montée de version

Un identifiant d'écran renuméroté, un contrôle SAPUI5 rendu autrement, un libellé traduit : un test écrit contre la mise en page casse au premier support package. SAPFX vise les contrôles par leur type, leur libellé ou leur clé, et ses réparations de localisateurs sont toujours journalisées, jamais silencieuses.

Trois technologies, souvent trois outils

SAP GUI pour Windows, applications SAP Fiori dans le navigateur, API OData et RFC : chacune a ses outils, ses compétences et ses rapports. SAPFX les réunit dans Robot Framework, avec les mêmes règles, un même exécuteur et un même rapport, sans licence par poste d'exécution.

Cas d'usage

Ce que SAPFX automatise aujourd'hui

Six usages éprouvés en direct sur des systèmes SAP de développement (ABAP Platform 1909 et 2023), chacun relié à ses preuves sur la page SAPFX en images.

Non-régression

Tests de non-régression SAP avant une montée de version

Une même campagne se rejoue sur deux releases en ne changeant que des variables : le prix d'un produit lu par trois canaux a été validé 7/7 sur la release 754 et 7/7 sur la release 758. Chaque campagne commence par prouver la release et le kernel du système visé. De ECC à S/4HANA : la méthode.

Get System IdentityDeux releases
Relève de CBTA

Reprendre des scénarios CBTA ou eCATT

Les scénarios se réécrivent en Robot Framework, dans un format texte que l'on versionne et que l'on relit. Un guide de migration depuis CBTA accompagne les bibliothèques ; les enregistreurs produisent un premier brouillon d'un parcours.

Guide de migrationEnregistreurs
Bout en bout

Processus métier de bout en bout, sur plusieurs canaux

Un rôle Business Partner ajouté à l'écran et constaté en base, un job de fond planifié par SM36 et son spool lu par RFC, un IDoc sortant jugé par son statut et son entrant retrouvé : chaque étape est vérifiée par un canal indépendant de celui qui agit.

Business PartnerJobs et spoolIDoc
Contrôle croisé

Vérifier une donnée par deux ou trois canaux

Le nombre de produits compté dans SE16 égale le $count OData (205 = 205), le compteur d'une tuile du launchpad égale l'agrégat d'une vue CDS lu par RFC (19 = 19). Rejoués le 5 octobre 2026.

Écran + APILaunchpad + RFC
Extraction

Extraire un tableau SAP vers CSV, Excel, JSON Lines, SVG ou Parquet

Une grille ALV, une grille du WebGUI, une table SAPUI5 ou une table lue par RFC rendent la même forme, écrite puis relue dans cinq formats. Un relevé amputé est refusé : sur trois de ces canaux, rien dans les lignes ne trahit qu'il en manque.

Table Extract Should Be Complete5 formats
Sécurité

Auditer la configuration de sécurité d'un système ABAP

Paramètres de profil jugés sur leur code de retour, comptes réellement utilisables, services web servis, couverture du journal d'audit, dérive confrontée à une référence : en lecture seule, par RFC.

Read Profile ParametersLecture seule
Architecture

Trois bibliothèques, quatre canaux, des règles communes

Les bibliothèques ne fusionnent pas les technologies : chacune garde les localisateurs de son canal, et elles partagent des règles (attendre l'état réel de SAP, juger un message par son identité, extraire un tableau sans en perdre une ligne, journaliser chaque réparation). Le vocabulaire métier se construit au-dessus, dans les keywords Robot Framework du projet.

SapEccLibrary · 195 keywords

SAP GUI pour Windows

Par l'API SAP GUI Scripting : grilles ALV lues en entier, table controls, arbres, listes déroulantes par clé, localisateurs par libellé visible, capture annotée pour les agents IA, assertions visuelles, plusieurs sessions par alias. Voir en images.

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

SAP Fiori, SAPUI5 et SAP GUI for HTML

Au-dessus de la bibliothèque Browser (Playwright) : contrôles UI5 désignés par type et propriétés, repos réel de la page, launchpad par intent et compteurs de tuiles, WebGUI par SID, UI5 Web Components, iframes imbriquées. Voir en images.

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

OData v2/v4 et RFC/BAPI

OData avec le protocole CSRF de SAP, $metadata et ses libellés, $batch, fabrique de données de test ; RFC optionnel par pyrfc : tables, BAPI jugées par type de message, jobs de fond et spool, IDoc. Voir les exemples.

Get Odata CountCall BapiWait For Idoc Status
La force de l'hybridation

Un test, deux ou trois canaux

Ici, le même produit est lu par le service OData, par la grille SE16 du WebGUI et par RFC, et les trois prix sont comparés entre eux, après normalisation de la notation décimale de l'utilisateur lue sur le système. Extrait réel de la suite, validée 7/7 sur les releases 754 et 758, rejouée 7/7 le 5 octobre 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 : rôle Business Partner SAP GUI + RFC : job SM36 et spool RFC + SAP GUI : IDoc 03 puis 53

Les neuf tests hybrides, avec leurs captures et leur code : SAPFX en images.

Analyse d'impact · Humain dans la boucle

Un transport arrive : quels tests rejouer, et pourquoi ?

Tout rejouer immobilise la campagne entière ; choisir de mémoire laisse passer une régression. L'analyse d'impact de SAPFX lit le transport dans le système SAP, suit chaque objet jusqu'à ceux qui l'utilisent, puis croise les noms avec vos suites Robot Framework selon ce que chaque test exécute vraiment, pas selon ce qu'un fichier mentionne. Elle propose, avec la preuve de chaque ligne ; un humain décide, et sa décision est consignée.

1

1. Ouvrir le transport

La requête et ses tâches, où vivent les objets jusqu'à la libération. Chaque ligne est ramenée à son objet principal : une méthode à sa classe, un include à son programme, une entrée de table à sa table. Par RFC, en lecture seule : rien n'est installé côté SAP.

2

2. Lire un niveau d'utilisation dans le système

Dans les références que SAP tient à jour : programmes, transactions, vues CDS, classes, modules fonction, éléments du dictionnaire, services OData. Mesuré sur S/4HANA 1909 : la table TTZCU est lue par 89 programmes, lancés par 5 transactions dont ST03. Une lecture plafonnée le dit, jamais en silence (T000 : 2 793 programmes).

3

3. Croiser avec vos suites, par ce qu'elles exécutent

Chaque suite est lue par l'analyseur de Robot Framework, sans rien exécuter : de keyword en keyword à travers ses ressources, ses variables, ses bibliothèques Python et ses fichiers de variables. Elle porte son atteinte : appelée, dynamique (un nom calculé n'est jamais pris pour « non appelée ») ou seulement nommée, avec les tests et le plan concernés.

4

4. Un humain décide, et c'est consigné

Pour chaque suite : rejouer ou écarter. Écarter exige une raison, et chaque décision dit qui l'a prise. Le fichier de décisions est lié à l'empreinte de l'impact : devant un autre transport, une décision est périmée, jamais appliquée. Tant qu'une suite qui exécute un objet transporté n'a pas été écartée, la commande sort en code 1 : une chaîne d'intégration ne peut pas l'ignorer.

Temps

5 suites à rejouer au lieu de 22

Sur le transport de référence des vols (113 objets), une recherche textuelle remonte 22 suites ; 5 exécutent réellement un objet transporté. Les 17 autres le nomment sans l'exécuter : l'humain les écarte, avec leur raison. Dix tests de validation, chacun sur un vrai transport, tournent en 18 secondes.

Qualité

682 points vérifiés, aucun manqué

Le graphe statique a été confronté à une vraie exécution à blanc de Robot Framework : 682 points, aucun keyword atteint en dehors du graphe. Ce que l'analyse ne voit pas (plus d'un niveau, SQL dynamique, transactions orientées objet, import non résolu), le rapport le dit.

Traçabilité

Une décision, une raison, un nom

Le rapport reprend la décision humaine dans une section « Décisions humaines », avec la preuve de chaque suite proposée. Une décision ne couvre que l'impact qu'elle a vu : c'est ce qui la rend vérifiable après coup.

Lecture seule par RFC Validée 10/10 sur les releases 754 et 758 Rapport Markdown et code retour Décision liée à l'empreinte de l'impact

Une première version, dite comme telle

L'analyse propose, un humain décide : aucune liste de suites ne prouve l'absence d'impact, et le rapport le rappelle. Un niveau d'utilisation, des références statiques. Validée le 9 octobre 2026 sur deux systèmes SAP de développement (S/4HANA 1909 et ABAP Platform 2023), elle est publiée dans la version 0.8.5 des bibliothèques, sur PyPI depuis le 13 octobre 2026.

Version 0.8.5 · Publiée le 13 octobre 2026

Nouveau dans la 0.8.5 : écrire sous contrôle, juger un run, vérifier un certificat

Six capacités, éprouvées sur les systèmes SAP de développement du laboratoire (S/4HANA 1909 et ABAP Platform 2023), sont publiées dans la version 0.8.5 des bibliothèques, sur PyPI depuis le 13 octobre 2026. Chaque carte dit ce qui est prouvé, et ce qui ne l'est pas.

Gouvernance

Une politique décide avant le geste d'écriture

Trois modes sur l'écran, OData et RFC : « lecture seule » refuse toute écriture, « exploration » exige une approbation consommée par un seul geste, « complet » laisse passer et journalise. Le refus tombe avant le geste : rien n'est envoyé à SAP. Une piste d'audit garde chaque décision, jamais une valeur. Validée 12/12 sur les releases 754 et 758, avec les mêmes 30 décisions d'audit. Un garde-fou d'exploitation, pas un contrôle de sécurité : la barrière reste l'autorisation SAP de l'utilisateur de test.

Humain dans la boucle

Un humain approuve une écriture, pour une cible

En mode « humain », l'agent ne peut plus s'approuver lui-même. L'approbation vient d'une personne, qui voit la raison, la cible, le système, le mandant et l'écran, et qui doit taper le mot « approuver » : un clic ne suffit pas. Elle ne couvre qu'une cible : un geste ailleurs est refusé. Tout autre cas (refus, annulation, poste sans écran) échoue fermé. Selon le client MCP, la demande s'affiche par le protocole ou par une boîte de saisie sur le poste. Validée devant le poste, puis à travers le serveur rf-mcp sur les deux releases.

Livraison

Un verdict GO ou NO-GO, calculé sur le run

À partir du fichier de résultats de Robot Framework : tests joués, échecs, sauts sans raison (dont un échec déguisé en saut), captures d'erreur dans un test vert, localisateurs réparés pendant le run, plans modifiés depuis la génération. Trois profils (strict, standard, montée en charge), des critères explicites, jamais un nombre magique. Un critère illisible est listé en premier comme non mesuré, jamais compté pour zéro. Code de retour 0, 1 ou 2 et rapport Markdown. Éprouvé sur les résultats réels des campagnes du jour ; pas encore de note chiffrée, elle attend l'usage des critères.

Sécurité

Le certificat déclaré est-il valide et réellement servi ?

Le certificat de l'identité STRUST, lu par RFC, est comparé par son empreinte SHA-256 à celui que le serveur présente sur le fil, et les services de l'ICM sont lus avec leur état. Cinq verdicts d'échéance, un seul réussit. Une identité sans certificat ne lève aucune erreur côté SAP : SAPFX la refuse au lieu de la lire comme valide. Validée 7/7 sur ABAP Platform 2023, en lecture seule. Les deux conteneurs du laboratoire portent le même certificat : seule la release prouve la cible.

Habilitations

Utilisateurs et rôles de test, créés puis supprimés

Par RFC, avec une liste blanche de préfixes, un marqueur obligatoire avant tout geste sur un objet existant, jamais dans le mandant 000 ni sur un rôle livré par SAP. Un rôle explicite avec son profil généré et vérifié, un mot de passe rendu productif par l'utilisateur lui-même, puis le contrôle d'autorisation du noyau pour un utilisateur nommé. Campagne validée 11/11 : sur l'application de démonstration des commandes de vente, le seul refus constaté est celui du lancement de la transaction, pas celui de la sauvegarde, et le constat est consigné en rapport d'anomalie.

Supervision

Une erreur, une entrée au journal de la Gateway

Le journal d'erreurs de la Gateway regroupe les erreurs identiques : compter ses entrées avant et après un appel ne prouve rien. La campagne prouve une entrée neuve, liée à la réponse reçue par l'identifiant de transaction, servie dans le bon mandant, puis retrouvée à l'écran. Un service inventé est refusé en 403 et non en 404. Validée 7/7 sur S/4HANA 1909, sans rien écrire dans la configuration.

Date et heure lues au format de l'utilisateur Un échec attendu ne laisse plus de capture Icônes de colonne lues dans les listes ABAP Nature d'un service OData Mode Espaces et Pages du launchpad Échecs d'autorisation lus dans SU53 Interfaces du système relevées par RFC Job de fond planifié par XBP 62 keywords de plus (442 au total) 3 959 tests unitaires

Dit comme tel

Éprouvées du 7 au 13 octobre 2026 sur deux systèmes SAP de développement, publiées dans la version 0.8.5 des bibliothèques. Chiffres du manifeste de preuves de la 0.8.5 : 3 959 tests unitaires, 95 % de couverture, 442 keywords, chacun avec un exemple d'utilisation, et 462 scénarios joués en direct sur les quatre systèmes SAP. L'outil d'approbation par le protocole MCP appartient à la surcouche de l'atelier, pas au paquet PyPI ; la politique de session est un garde-fou d'exploitation, pas un contrôle de sécurité.

Outils de l'atelier · En option

Enregistreurs, agents IA, maintenance : les outils de l'atelier, en option

Autour des bibliothèques gratuites, dix outils écrivent, font écrire et maintiennent vos tests, et cartographient votre système. Ils ne sont pas dans le paquet PyPI : ils sont délivrés sur devis, et ce qu'ils produisent reste du Robot Framework ordinaire, qui tourne sans eux.

Enregistreurs

Dérouler un parcours, récupérer un test

Dans SAP GUI pour Windows comme dans le navigateur (SAP Fiori, WebGUI), le parcours devient une suite rejouable, une paire « resource et suite », un plan, des cas de test ISTQB et un rapport HTML. Voir les enregistreurs.

SAP GUIExtension Chrome5 exports
Prompt Eval

Noter une demande avant les agents

Une demande de test est un prompt : sa forme et sa part de gabarit sont vérifiées sans appel à un modèle, huit critères sont jugés par un modèle, local par défaut, et une sonde RFC en lecture seule dit si les objets SAP qu'elle nomme existent. Voir Prompt Eval.

8 critèresSonde RFCNouveau
Agents IA

Planifier, générer, réparer, relire

Cinq agents dans Claude Code ou GitHub Copilot, bornés par un contrat de mission, un hook de permissions et un fil de reprise après coupure ; ils sont présentés juste en dessous. Voir leur cadre.

5 agentsContrat de missionSkill sapfx
Pont MCP

Un assistant IA qui voit l'écran SAP

Trois plugins du serveur rf-mcp et la surcouche sapfx-mcp : l'écran SAP en texte, en différentiel ou en image annotée, l'état lu en direct, et l'approbation par un humain d'une écriture sur SAP. Voir le pont MCP.

sapfx_statesapfx_screenshotsapfx_approve_write
Maintenance

Voir la dérive avant l'échec

Suite sentinelle à planifier, rapport de dérive tiré de la télémétrie de réparation, gardes du plan et des conventions ; les correctifs ne touchent que la couche resources. Voir la maintenance.

SentinelleRapport de dérive
Cartographie

Ce qui est relié à votre SAP, et ce qui est actif

Un relevé par RFC en lecture seule, rapproché par une règle de votre cartographie applicative et de votre référentiel d'interfaces : deux planches A3, un rapport, un verdict par interface et, pour chaque écart, sa preuve capturée dans SAP GUI. Voir la cartographie.

Lecture seulePlanches A3Nouveau
Couche métier

Des keywords métier à adapter

Neuf vocabulaires, vingt-cinq page objects et douze suites d'exemple, mesurés sur nos systèmes de développement : des exemples à personnaliser, pas un vocabulaire universel. Voir la couche métier.

Page objects12 suites d'exemple
Pack Windows

Un poste de test prêt en une commande

Un ZIP autonome : versions épinglées, intégrité vérifiée, configuration MCP écrite, canal RFC optionnel par le runtime déjà déposé par SAP GUI 8.00. Voir le pack.

install.cmdSHA-256

Inclus ou en option

Inclus et gratuits : les trois bibliothèques, leurs 442 keywords et leur documentation, sur PyPI. En option, sur devis : les outils de l'atelier, délivrés sous la forme d'un pack de déploiement Windows, avec leur installation, la formation et l'adaptation à vos écrans selon le périmètre du devis. Aucun gain chiffré n'est annoncé : ce qui est mesuré, ce sont les campagnes jouées sur nos systèmes de développement.

Agents IA · MCP

Cinq agents IA spécialisés SAP, sous contrôle humain

Les agents pilotent SAP à travers le serveur MCP rf-mcp et les plugins SAPFX, dans Claude Code ou GitHub Copilot. Ils font partie de l'atelier SAPFX, en option, pas du paquet PyPI, qui porte les bibliothèques. Pour les voir à l'œuvre : le film « Comment des agents IA pilotent SAP » (8 min 20).

01 · Exploration specs/

sap-planner · Explorer et écrire le plan

Confronte la demande, écrite en langage humain, au système SAP réel en le percevant écran par écran, et écrit un plan de test observé, jamais supposé, relu par un humain.

02 · Génération tests/

sap-generator · Exécuter avant d'écrire

Exécute chaque étape sur le système SAP avant de l'écrire dans la suite Robot Framework, et scelle la suite par l'empreinte de son plan : un plan modifié sans régénération est refusé.

03 · Réparation resources/

sap-healer · Réparer la couche resources

Reproduit un échec, vérifie la correction sur le système et répare la couche de keywords métier, jamais le test ni ses assertions ; chaque réparation est consignée dans un journal.

04 · Vérification lecture seule

sap-verifier · Revue indépendante

Relit en lecture seule une suite générée ou réparée contre son invariant métier et ses preuves : assertion affaiblie, échec sauté, mauvaise cible ou résultat non prouvé.

05 · ISTQB specs/istqb/

sap-istqb · Concevoir et revoir

Rédige des plans et cas de test structurés selon l'ISTQB et la norme ISO/IEC/IEEE 29119-3, avec un bloc de rejeu lisible par tout outil, et revoit la conception de chaque suite générée.

Aucune réparation silencieuse

Dans les bibliothèques, un localisateur réparé l'est avec un avertissement dans le journal Robot Framework et, si on l'active, une ligne dans un journal de télémétrie (SAPFX_HEALING_LOG). L'agent sap-healer, lui, ne modifie que la couche resources et consigne chaque diagnostic. Les assertions des tests ne sont jamais touchées.

Spec-Test-Driven Development (STDD) : la spec en langage humain pilote le test, le test pilote les bibliothèques

La spécification est une vision d'ensemble en langage humain, structurée ou non (objectif métier, user story, scénario BDD, fichier de test existant) ; sap-planner la confronte à votre système SAP et en écrit la version observée dans specs/ ; sap-generator en dérive la suite, chaque étape exécutée en direct et scellée par l'empreinte SHA256 du plan ; et ce qu'un test exige sans que les bibliothèques sachent le faire devient un keyword de SAPFX, jamais un contournement dans une suite. Même logique que TDD, une brique plus tôt : la spec, verte par défaut en théorie, est confrontée au système réel avant le moindre test. Méthode définie dans rf-test-agents et partagée avec ODOOFX ; définition au glossaire. Pour le voir à l'œuvre sur un cas SAP réel : le film STDD (8 min 34).

Choisir en connaissance de cause

Quand SAPFX convient, et quand il ne convient pas

Les familles d'outils de test SAP n'ont ni le même périmètre ni le même modèle. Ce tableau les situe sans en nommer aucun ; il dit aussi nos limites.

Famille d'outils SAP GUI SAP Fiori / SAPUI5 OData / RFC Licence Forme des tests
Suites de test propriétaires du marché Oui Oui Selon l'offre Commerciale Souvent sans code, format de l'éditeur
Outil d'automatisation intégré à SAP S/4HANA Cloud Public Edition Non Oui Oui Fourni avec l'édition cloud Scénarios standard de SAP, sans code
Bibliothèques open source existantes pour tester SAP GUI Oui Non Non Open source Robot Framework
Frameworks de test SAPUI5 en JavaScript Non Oui Non Open source Code JavaScript ou TypeScript
SAPFX Oui Oui, et SAP GUI for HTML Oui Apache 2.0, 0 € Robot Framework, keywords métier

SAPFX convient si :

  • ✓vos tests doivent traverser SAP GUI, SAP Fiori et les API dans un même scénario ;
  • ✓vous voulez des tests lisibles, versionnés et exécutés dans votre propre intégration continue ;
  • ✓votre équipe utilise déjà Robot Framework, ou accepte de s'y former ;
  • ✓vous cherchez une suite à CBTA sans licence par poste d'exécution.

SAPFX ne convient pas si :

  • ×vous exigez un éditeur graphique à glisser-déposer : SAPFX n'en a pas, un test s'écrit en keywords Robot Framework lisibles sans programmer, et les enregistreurs produisent un brouillon ;
  • ×vos utilisateurs travaillent sous SAP GUI for Java ou macOS : SapEccLibrary pilote SAP GUI pour Windows ;
  • ×vous n'utilisez que SAP S/4HANA Cloud Public Edition, dont l'outil d'automatisation intégré couvre déjà les scénarios standard ;
  • ×vous exigez le support contractuel d'un éditeur de logiciel : SAPFX est un projet open source indépendant, accompagné par AI Cabra sur devis.
Accompagnement · Sur devis

Nos prestations autour de SAPFX

Les bibliothèques sont libres et gratuites. AI Cabra accompagne leur mise en œuvre, sur devis, selon un périmètre défini ensemble.

Migration depuis CBTA, eCATT ou une suite propriétaire

Inventaire de vos scénarios, priorisation par domaine métier et réécriture en Robot Framework avec SAPFX. Nous vous accompagnons directement ou vous orientons vers des partenaires intégrateurs spécialisés.

Cadrer une migration →

Intégration dans votre chaîne CI/CD

Exécution des suites dans vos pipelines (GitLab CI, GitHub Actions, Jenkins), sur vos propres machines : un poste Windows pour SAP GUI, n'importe quel poste pour SAP Fiori et les API. Rapports Robot Framework archivés et partagés.

Cadrer une intégration →

Maintenance et évolutions

Suivi de vos suites lors des montées de version SAP, développement de keywords pour vos transactions et vos développements spécifiques, avec leurs tests unitaires et leur documentation.

Échanger sur vos besoins →

Formation des équipes

Robot Framework, l'architecture des bibliothèques, l'écriture de keywords métier, les enregistreurs et les agents IA, sur vos propres transactions et parcours.

Organiser une formation →
Projet pilote · Sur devis

Essayer SAPFX sur vos propres flux SAP

Avant toute décision, un pilote sur un parcours représentatif de votre système (par exemple une commande de bout en bout, à l'écran et par l'API) montre ce que SAPFX couvre chez vous et ce qu'il faudrait construire.

Périmètre défini ensemble

Un ou deux parcours, une durée et des objectifs fixés avant de commencer.

Votre système, vos règles

Sur un système de développement ou de recette, avec vos accès et vos contraintes de sécurité.

Livrables à vous

Suites, keywords métier et documentation vous appartiennent.

Demander un cadrage de pilote
Au-delà du test

Écrire, supprimer, se contrôler : ce que l'outil sait faire d'autre que tester

Un outil qui sait écrire une donnée, la relire par un second canal, la supprimer et constater qu'elle a disparu ne sert pas qu'à vérifier un système. Trois usages s'ouvrent. Ils sont présentés comme un cap : ce qui est prouvé et ce qui reste à construire sont dits côte à côte.

Générer des jeux de données

Créer des jeux complets, cohérents et identifiables comme données de test, pour alimenter les campagnes.

État : cap, à très court terme. Existe déjà : la fabrique de données de test du canal API et les cycles de création par l'écran et par RFC.

Garnir des bases pour les tests de performance

Peupler des bases SAP vides ou incomplètes avant de lancer une campagne de charge.

État : cap. Aucune campagne de volume jouée et aucun temps de chargement mesuré à ce jour.

Paramétrer et migrer des données

Charger des données métier complexes pour configurer un environnement cible, ou sécuriser une injection de données lors d'une migration majeure, par exemple d'ECC vers S/4HANA, en contrôlant le résultat par un second canal.

État : cap. L'écriture, la suppression et le recoupement par deux canaux sont validés en direct ; aucune migration n'a été jouée.

Prouvé aujourd'hui sur des systèmes SAP de développement. Sur un système client, chaque cible se traite au cas par cas, réversibilité d'abord. SAPFX ne se présente pas comme un remplaçant des outils de migration de SAP : il apporte le chargement scripté et son contrôle croisé.

Questions fréquentes

Automatiser les tests SAP avec Robot Framework : les questions qu'on nous pose

Les réponses courtes ; le détail est dans la FAQ et la documentation des keywords.

Qu'est-ce que SAPFX ?

SAPFX (paquet robotframework-sapfx, version 0.8.5 sur PyPI) est un ensemble de trois bibliothèques Robot Framework open source sous licence Apache 2.0 pour automatiser les tests SAP : SapEccLibrary pour SAP GUI pour Windows, SapFioriLibrary pour les applications SAP Fiori, SAPUI5 et SAP GUI for HTML, SapApiLibrary pour OData et RFC/BAPI. Un même test peut traverser plusieurs de ces canaux.

Quelles bibliothèques Robot Framework permettent d'automatiser SAP GUI ?

SapEccLibrary, la bibliothèque SAP GUI de SAPFX, pilote SAP GUI pour Windows par l'API SAP GUI Scripting. Elle reste compatible avec une bibliothèque open source existante, dont elle garde les keywords, et compte 195 keywords : grilles ALV lues en entier, table controls, arbres, champs désignés par leur libellé, preuve du système visé, captures annotées pour les agents IA.

Comment tester une application SAP Fiori avec Robot Framework ?

Avec SapFioriLibrary, au-dessus de la bibliothèque Browser (Playwright) : les contrôles SAPUI5 se désignent par leur type et leurs propriétés au lieu des identifiants DOM générés, Wait For Ui5 Idle attend le repos réel de la page, et les applications du launchpad s'ouvrent par leur intent. Le Demo Kit OpenUI5 public suffit pour essayer, sans système SAP.

Existe-t-il une alternative open source à CBTA avant la fin de 2027 ?

SAPFX en est une : les scénarios CBTA se réécrivent en Robot Framework, sur SAP GUI, SAP Fiori et les API, sans licence. La maintenance standard de SAP Solution Manager 7.2, qui porte CBTA, s'arrête le 31 décembre 2027. Un guide de migration depuis CBTA accompagne les bibliothèques ; la réécriture reste un travail, que nous pouvons accompagner sur devis.

SAPFX est-il gratuit ?

Oui. Les bibliothèques sont sous licence Apache 2.0 : aucune licence à payer, quel que soit le nombre d'utilisateurs ou de postes d'exécution, usage commercial compris. AI Cabra propose sur devis des prestations d'accompagnement, de migration et de formation.

Peut-on essayer SAPFX sans système SAP ?

Oui, en partie. SapFioriLibrary s'essaie sur le Demo Kit OpenUI5 public ou sur une application SAP Fiori Elements servie en local. Pour SAP GUI et les API, l'image Docker gratuite d'ABAP Platform Trial fournit un système SAP complet sur un poste de travail.

Un agent IA peut-il piloter SAP avec SAPFX ?

Oui. Les plugins SAPFX du serveur MCP rf-mcp donnent à un agent (Claude Code, GitHub Copilot) la perception de l'écran SAP et l'exécution des keywords pas à pas. Cinq agents spécialisés planifient, génèrent, réparent, vérifient et documentent les tests, sous contrôle humain. Prompt Eval note la demande de test avant que les agents ne la traitent, et une écriture dans SAP peut exiger l'approbation d'un humain (outil MCP sapfx_approve_write). Ils font partie de l'atelier SAPFX, pas du paquet PyPI.

Les outils de SAPFX sont-ils inclus dans le paquet PyPI ?

Non. Le paquet porte les trois bibliothèques, gratuites. Les outils de l'atelier (enregistreurs SAP GUI et web, notation des demandes par Prompt Eval, agents IA et leur contrat, plugins MCP, maintenance préventive, couche métier d'exemple, pack Windows) sont en option et délivrés sur devis ; ce qu'ils produisent reste du Robot Framework ordinaire, qui tourne sans eux.

Un même test peut-il vérifier SAP GUI, SAP Fiori et les API ?

Oui, c'est l'hybridation : un test prépare par l'API, agit à l'écran et vérifie par un canal indépendant. Exemples rejoués le 5 octobre 2026 : 205 produits comptés par SE16 et par OData, 19 commandes affichées par une tuile du launchpad et comptées par RFC sur une vue CDS, un même prix lu par OData, le WebGUI et RFC.

Comment savoir quels tests SAP rejouer après un transport ?

Avec l'analyse d'impact de SAPFX, publiée dans la version 0.8.5 des bibliothèques (13 octobre 2026) et validée le 9 octobre 2026 sur S/4HANA 1909 et ABAP Platform 2023. Elle lit le transport par RFC en lecture seule, suit chaque objet sur un niveau d'utilisation (programmes, transactions, vues CDS, classes, modules fonction), puis croise les noms avec les suites Robot Framework selon ce que chaque test exécute vraiment. Un humain décide ensuite, suite par suite, de rejouer ou d'écarter avec une raison, et la décision est consignée, liée à l'empreinte de l'impact. Sur le transport de référence des vols, une recherche textuelle remonte 22 suites ; 5 exécutent un objet transporté. Aucune liste de suites ne prouve l'absence d'impact.

Qu'apporte la version 0.8.5 de SAPFX ?

Publiée sur PyPI le 13 octobre 2026, elle apporte des capacités éprouvées du 7 au 13 octobre 2026 sur S/4HANA 1909 et ABAP Platform 2023 : une politique de session qui décide avant tout geste d'écriture (lecture seule, exploration, complet) avec une piste d'audit ; l'approbation d'une écriture par un humain, liée à une cible ; un verdict GO ou NO-GO calculé sur le fichier de résultats d'un run ; la vérification du certificat SSL déclaré dans STRUST et de celui que l'ICM sert réellement ; des utilisateurs et rôles de test créés puis supprimés par RFC ; la supervision du journal d'erreurs de la Gateway ; l'analyse d'impact d'un transport ; la nature d'un service OData prouvée par ses marqueurs, le mode Espaces et Pages du launchpad et les échecs d'autorisation lus dans SU53. Chiffres de la 0.8.5 : 442 keywords, chacun avec un exemple d'utilisation, 3 959 tests unitaires, 462 scénarios joués en direct.

SAPFX fonctionne-t-il avec SAP GUI for Java ?

Non. SapEccLibrary pilote SAP GUI pour Windows par l'API SAP GUI Scripting. Un système accessible par SAP GUI for HTML se teste avec SapFioriLibrary, dans le navigateur.

Preuves & périmètre

Résultats mesurés et périmètre de validation

Tester SAP sur SAP GUI, Fiori et les API OData/RFC avec Robot Framework. Revu le 13 octobre 2026. Les sources publiées et les conditions de mesure sont précisées ci-dessous.

Cas publié : un prix lu par trois canaux

Cas de laboratoire EPM : OData, SE16 WebGUI et RFC, avec vérification de la cible puis comparaison des valeurs. 7/7 scénarios sur chacune des releases ABAP 754 et 758 le 21/09/2026, rejoué 7/7 le 05/10/2026. Limite : lecture seule, sans preuve de gain client.

Lire la preuve publiée dans la release
En conclusion · 11 min 11

L'état d'esprit de SAPFX : sept principes, une boîte à outils, ce que cela change

Pour finir, l'état d'esprit qui structure SAPFX, en un seul film : sept principes appuyés sur des cas réels, la boîte à outils, et ce que cela change, sans cacher ce qui manque encore (support éditeur, éditeur graphique).

L'état d'esprit de SAPFX · 11 min 11 · en anglais, voix de synthèse, sous-titres français. Les personnages des films précédents (Stedd, MCP, Terra, qa-brain) accueillent trois nouveaux venus : You (l'humain qui décide), RF (Robot Framework à l'exécution) et Gate (les gardes mécaniques). Chaque principe se clôt par une carte « Remember » (à retenir).

Audit & Cadrage

Prêt à fiabiliser vos livraisons SAP et anticiper l'échéance CBTA 2027 ?

Échangez directement avec nos architectes pour auditer votre suite de tests existante, préparer la relève de CBTA ou d'une suite propriétaire, ou cadrer un pilote sur vos flux métiers. Prestations sur devis.

  • Un échange technique, pas commercial
  • Vos données restent en France
Tutoriel pas-à-pas

ou directement par courriel :