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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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}
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}
Les neuf tests hybrides, avec leurs captures et leur code : SAPFX en images.
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. 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. 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. 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. 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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é.
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.
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é.
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.
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.
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 →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.
Un ou deux parcours, une durée et des objectifs fixés avant de commencer.
Sur un système de développement ou de recette, avec vos accès et vos contraintes de sécurité.
Suites, keywords métier et documentation vous appartiennent.
É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.
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.
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.
- 0.8.5 publiée sur PyPI Publiée le 13 octobre 2026 : pip install robotframework-sapfx, Python 3.10 ou plus, Robot Framework 7.4 ou plus. Le paquet porte les trois bibliothèques ; les agents et la surcouche MCP n'en font pas partie. Paquet robotframework-sapfx 0.8.5 sur PyPI
- 442 keywords documentés 195 dans SapEccLibrary (SAP GUI), 98 dans SapFioriLibrary (SAP Fiori, SAPUI5, WebGUI), 149 dans SapApiLibrary (OData, RFC/BAPI), version 0.8.5 ; chacun porte un exemple d'utilisation en code Robot Framework. Documentation des keywords (Libdoc)
- 462 scénarios en direct Agrégat de campagnes validées du 12/07 au 13/10/2026 sur quatre systèmes SAP réels de développement (ABAP Platform 1909 et 2023, un site SAP Build Work Zone, le bac à sable SAP Business Accelerator Hub) ; ce n'est pas un run unique, ni un système client. Manifeste de preuves interne du 13/10/2026
- 3 959 tests unitaires Rejoués hors SAP en intégration continue à la release 0.8.5 ; ils vérifient les bibliothèques contre des doubles locaux, pas un système SAP client. Intégration continue interne de la release 0.8.5
- 95 % de couverture Mesure pytest-cov de la release 0.8.5, plancher de 85 % imposé en CI ; ne garantit pas l'absence de défaut métier. Intégration continue interne de la release 0.8.5
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 releaseL'é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).
Les trois films précédents détaillent chaque étape : l'IA dans les tests, la méthode STDD et les agents qui pilotent SAP. Tous les films, avec leur transcription, sont réunis sur la page Vidéos explicatives.
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