Guía de inicio · SAPFX 0.8.5 · Robot Framework

Empezar con SAPFX · probar SAP con Robot Framework

Esta guía instala SAPFX desde PyPI y después lanza una primera prueba en SAP GUI, en una aplicación SAP Fiori® y en una API OData. Los tres ejemplos son los del README de las bibliotecas, verificados contra sus destinos con la publicación de la versión 0.8.3. La primera prueba de SAP Fiori se ejecuta sin ningún sistema SAP, en el Demo Kit público de OpenUI5.

Paso a paso

Ocho pasos, de la instalación al informe

Cada ejemplo de código está copiado tal cual de un documento verificado; no se inventa ninguna keyword.

1

1. Instalar SAPFX desde PyPI

Python 3.10 o superior. El paquete instala las tres bibliotecas y Robot Framework 7.4 o superior.

> pip install robotframework-sapfx
  • ✓SAP Fiori y WebGUI: pip install "robotframework-sapfx[web]" añade la biblioteca Browser, y después rfbrowser init instala una sola vez los navegadores de Playwright.
  • ✓Otros extras: visual (Pillow, para las aserciones visuales) y parquet (pyarrow, para las exportaciones Parquet).
  • ✓RFC, opcional: pip install pyrfc==3.3.1 (SAP archivó el proyecto, así que la versión se fija; paquetes wheel precompilados hasta Python 3.12) y el runtime SAP NW RFC, que una instalación de SAP GUI para Windows 8.00 suele proporcionar ya. Sin él, las keywords RFC lo indican y el resto funciona.
2

2. Elegir un destino, con o sin sistema SAP

  • ✓Sin sistema SAP: el Demo Kit público de OpenUI5 basta para SapFioriLibrary (paso 5).
  • ✓Un sistema SAP gratuito en su equipo: la imagen Docker de ABAP Platform Trial proporciona SAP GUI, el WebGUI, OData y RFC. El procedimiento se describe en la guía «probar sin sistema SAP» (en inglés).
  • ✓Su sistema de desarrollo o de pruebas de aceptación: nunca el de producción, y con un usuario de prueba.
3

3. Activar SAP GUI Scripting (solo para el canal SAP GUI)

  • ✓En el servidor: en la transacción RZ11, el parámetro sapgui/user_scripting debe valer TRUE.
  • ✓En el equipo: opciones de SAP GUI, Accessibility & Scripting, Scripting y después Enable scripting.
  • ✓Verificar ambos a la vez: la keyword Scripting Should Be Fully Enabled falla nombrando el parámetro que hay que corregir.
4

4. Una primera prueba de SAP GUI: leer la tabla de mandantes

Conexión, control del scripting y lectura completa de la cuadrícula ALV de SE16 sobre la tabla T000. La contraseña se introduce en la línea de comandos (paso 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}

En un proyecto real, los identificadores de pantalla (wnd[0]/usr/...) viven en una capa de keywords de negocio, y las pruebas solo hablan el lenguaje del negocio.

5

5. Una primera prueba de SAP Fiori, sin sistema SAP

En la referencia de la API del Demo Kit de OpenUI5: el campo de búsqueda se designa por su tipo de control SAPUI5, nunca por un identificador DOM generado.

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. Una primera prueba OData: contar y leer productos

En el servicio de demostración EPM de un sistema ABAP Platform Trial. Para RFC y las BAPI, consulte los ejemplos 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. Lanzar la suite y leer el informe

La contraseña se pasa como variable tipada Secret (Robot Framework 7.4): no aparece en ningún registro, ni siquiera en el nivel TRACE. Después, Robot Framework produce log.html y report.html.

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

8. Conectar la integración continua

  • ✓SAP Fiori, WebGUI y API: cualquier ejecutor, Linux incluido.
  • ✓SAP GUI: un ejecutor Windows con SAP GUI instalado y una sesión de escritorio abierta, como exige SAP GUI Scripting.
  • ✓Los informes: log.html, report.html y output.xml se archivan como cualquier artefacto de compilación.
Ir más allá

Después de la primera prueba

Ver lo que SAPFX hace de verdad

Capturas tomadas en vivo y código copiado de suites validadas, canal por canal y en pruebas de dos o tres canales: SAPFX en imágenes.

Encontrar la keyword adecuada

Las 442 keywords de las tres bibliotecas, con sus argumentos y sus ejemplos: documentación de las keywords (en inglés).

Retomar escenarios CBTA

La correspondencia entre las nociones de CBTA y las de SAPFX: guía de migración desde CBTA (en inglés).

Acompañamiento empresarial

¿Necesita ayuda para industrializar SAPFX en su infraestructura?

Nuestros consultores de QA y SAP le acompañan en el encuadre, la integración CI/CD en sus pipelines, la formación de sus probadores y el mantenimiento de sus suites. Servicios bajo presupuesto.

  • Un intercambio técnico, no comercial
  • Sus datos permanecen en Francia
Descubrir la oferta completa

o directamente por correo electrónico: