Guide de démarrage · SAPFX 0.8.5 · Robot Framework

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.

Pas à pas

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

1. Installer SAPFX depuis PyPI

Python 3.10 ou plus. Le paquet installe les trois bibliothèques et Robot Framework 7.4 ou plus.

> pip install robotframework-sapfx
  • ✓SAP Fiori et WebGUI : pip install "robotframework-sapfx[web]" ajoute la bibliothèque Browser, puis rfbrowser init installe une fois les navigateurs Playwright.
  • ✓Autres extras : visual (Pillow, pour les assertions visuelles) et parquet (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

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

3. Activer SAP GUI Scripting (canal SAP GUI seulement)

  • ✓Côté serveur : dans la transaction RZ11, le paramètre sapgui/user_scripting doit valoir TRUE.
  • ✓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

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).

README.fr.md
*** 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

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é.

README.fr.md
*** 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

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.

README.fr.md
*** 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

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.

> robot -v "PASSWORD: Secret:..." suite.robot
8

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.html et output.xml s'archivent comme n'importe quel artefact de build.
Aller plus loin

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.

Accompagnement Entreprise

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
Découvrir l'offre complète

ou directement par courriel :