Démarrer avec SAPFX · tester SAP avec Robot Framework
Ce guide installe SAPFX depuis PyPI, puis lance un premier test sur SAP GUI, sur une application SAP Fiori® et sur une API OData. Les trois exemples sont ceux du README des bibliothèques, vérifiés contre leurs cibles à la sortie de la version 0.8.3. Le premier test SAP Fiori tourne sans aucun système SAP, sur le Demo Kit OpenUI5 public.
Huit étapes, de l'installation au rapport
Chaque exemple de code est copié tel quel d'un document vérifié ; aucun keyword n'y est inventé.
1. Installer SAPFX depuis PyPI
Python 3.10 ou plus. Le paquet installe les trois bibliothèques et Robot Framework 7.4 ou plus.
- ✓SAP Fiori et WebGUI :
pip install "robotframework-sapfx[web]"ajoute la bibliothèque Browser, puisrfbrowser initinstalle une fois les navigateurs Playwright. - ✓Autres extras :
visual(Pillow, pour les assertions visuelles) etparquet(pyarrow, pour les exports Parquet). - ✓RFC, optionnel :
pip install pyrfc==3.3.1(SAP a archivé le projet, la version s'épingle ; roues précompilées jusqu'à Python 3.12) et le runtime SAP NW RFC, qu'une installation de SAP GUI pour Windows 8.00 fournit en général déjà. Sans lui, les keywords RFC le disent et le reste fonctionne.
2. Choisir une cible, avec ou sans système SAP
- ✓Sans système SAP : le Demo Kit OpenUI5 public suffit pour SapFioriLibrary (étape 5).
- ✓Un système SAP gratuit sur votre poste : l'image Docker d'ABAP Platform Trial fournit SAP GUI, le WebGUI, OData et RFC. La marche à suivre est décrite dans le guide « tester sans système SAP ».
- ✓Votre système de développement ou de recette : jamais la production, et avec un utilisateur de test.
3. Activer SAP GUI Scripting (canal SAP GUI seulement)
- ✓Côté serveur : dans la transaction
RZ11, le paramètresapgui/user_scriptingdoit valoirTRUE. - ✓Côté poste : options de SAP GUI, Accessibility & Scripting, Scripting, puis Enable scripting.
- ✓Vérifier les deux d'un coup : le keyword
Scripting Should Be Fully Enabledéchoue en nommant le paramètre à corriger.
4. Un premier test SAP GUI : lire la table des mandants
Connexion, contrôle du scripting, puis lecture complète de la grille ALV de SE16 sur la table T000. Le mot de passe s'entre en ligne de commande (étape 7).
*** Settings *** Library SapEccLibrary *** Variables *** ${CONNECTION} MY SYSTEM ${USER} DEVELOPER ${PASSWORD} ${EMPTY} ${GRID} wnd[0]/usr/cntlGRID1/shellcont/shell *** Test Cases *** Read The Clients Table In SE16 Open Sap Logon Connect To Session With Retry Open Connection ${CONNECTION} Input Text wnd[0]/usr/txtRSYST-BNAME ${USER} Input Password wnd[0]/usr/pwdRSYST-BCODE ${PASSWORD} Send Vkey 0 Scripting Should Be Fully Enabled Use ALV Grid In Data Browser Input Text wnd[0]/usr/ctxtDATABROWSE-TABLENAME T000 Send Vkey 0 Send Vkey 8 ${rows}= Read Full Grid ${GRID} Log ${rows}
Dans un vrai projet, les identifiants d'écran (wnd[0]/usr/...) vivent dans une couche de keywords métier, et les tests ne parlent que le langage du métier.
5. Un premier test SAP Fiori, sans système SAP
Sur la référence d'API du Demo Kit OpenUI5 : le champ de recherche est désigné par son type de contrôle SAPUI5, jamais par un identifiant DOM généré.
*** Settings *** Library Browser Library SapFioriLibrary ui5_timeout=20s *** Test Cases *** Search The API Reference New Browser chromium headless=True New Page https://sdk.openui5.org/#/api Fill Ui5 Input Button controlType=SearchField ${xpath}= Get Ui5 Xpath controlType=SearchField Log ${xpath} [Teardown] Close Browser
6. Un premier test OData : compter et lire des produits
Sur le service de démonstration EPM d'un système ABAP Platform Trial. Pour le RFC et les BAPI, voir les exemples RFC.
*** Settings *** Library SapApiLibrary *** Variables *** ${PASSWORD} ${EMPTY} *** Test Cases *** Count The Products Open Api Session http://localhost:50000 user=DEVELOPER ... password=${PASSWORD} sap_client=001 ${count}= Get Odata Count /sap/opu/odata/sap/SEPMRA_SHOP/Products Should Be True ${count} > 0 ${first}= Get Odata Entities /sap/opu/odata/sap/SEPMRA_SHOP/Products top=3 Length Should Be ${first} 3 [Teardown] Close All Api Sessions
7. Lancer la suite et lire le rapport
Le mot de passe passe en variable typée Secret (Robot Framework 7.4) : il n'apparaît dans aucun journal, même en niveau TRACE. Robot Framework produit ensuite log.html et report.html.
8. Brancher l'intégration continue
- ✓SAP Fiori, WebGUI et API : n'importe quel exécuteur, Linux compris.
- ✓SAP GUI : un exécuteur Windows où SAP GUI est installé, avec une session de bureau ouverte, comme l'exige SAP GUI Scripting.
- ✓Les rapports :
log.html,report.htmletoutput.xmls'archivent comme n'importe quel artefact de build.
Après le premier test
Voir ce que SAPFX fait en vrai
Captures prises en direct et code copié de suites validées, canal par canal et dans des tests sur deux ou trois canaux : SAPFX en images.
Chercher le bon keyword
Les 442 keywords des trois bibliothèques, avec leurs arguments et leurs exemples : documentation des keywords (en anglais).
Reprendre des scénarios CBTA
La correspondance entre les notions de CBTA et celles de SAPFX : guide de migration depuis CBTA.
Besoin d'aide pour industrialiser SAPFX sur votre infrastructure ?
Nos consultants QA et SAP vous accompagnent pour le cadrage, l'intégration CI/CD dans vos pipelines, la formation de vos testeurs et la maintenance de vos suites. Prestations sur devis.
- Un échange technique, pas commercial
- Vos données restent en France