Pruebas automatizadas en JAVA para SAP utilizando el patrón Screenplay

5 min read
24 de abril de 2023

El patrón Screenplay define una forma de empaquetado en la que se promueven las buenas prácticas del testing, teniendo la información organizada para que sea fácil de mantener y fácil de extender. 

El hecho de que se utilice este patrón en cualquier proyecto no quiere decir que no sea flexible a modificaciones, ya que no todas las soluciones de testing automatizado son iguales ni cubren los mismos escenarios.

Ahora bien, las transacciones SAP se pueden automatizar instalando complementos en el equipo para relacionar el sistema operativo y la aplicación de escritorio. 

Estos complementos deben ir instalados en la carpeta de archivos binarios  propios de JAVA. Además, la versión de JDK que se utiliza para los proyectos de automatización es JDK_1.8, ya que es el que más se adapta a las necesidades del plugin para su correcto funcionamiento.

Estructura

La estructura base de un proyecto screenplay cuenta con los siguientes paquetes, dentro de la carpeta main tenemos: 

  • exceptions
  • interactions
  • models
  • questions
  • tasks
  • userinterfaces
  • utils (Opcional)

Este es el empaquetado que normalmente se trabaja en automatizaciones web que también, para este caso, sirve para el ERP SAP. Cada una de estas carpetas tiene un objetivo específico, además del de mantener el código limpio y de forma ordenada.

Exceptions

Dentro de este paquete nos encontramos con todas las execpciones, o fallos, que puede lanzar la automatización en caso de que se presenten, esto se hace para controlar los diferentes fallos que puedan llegar a suceder pero de una manera natural, un ejemplo de esto sería intentar registrar un usuario que ya se encuentra en la base de datos, lo más natural es que se lance una excepción donde se notifique de la falla presentada.

Interactions

Las interacciones son acciones que ya se ejecutan a más bajo nivel, pero que son repetitivas como por ejemplo, dar clicks en ciertos lugares para poder acceder a opciones, interactuar listas desplegables y demás. Estas interacciones son ya aplicadas directamente a la interfaz del usuario.

Models

Modelos son todos aquellos objetos que puedan ser abstraídos de la lógica del negocio que cumplen un rol específico en la aplicación y que durante cierto tiempo deben mantener un estado con sus respectivos atributos. Un ejemplo de esto podría ser una clase Usuario, en donde sus atributos sean su nombre y teléfono y que estos tengan un uso importante en ciclo de vida del escenario que se está validando.

Questions

Preguntar si un elemento es visible , si un campo tiene el texto solicitado o si todos los elementos de una lista están contenidos dentro de esta misma, son algunos de los muchos ejemplos en los que podemos utilizar este paquete.

Tasks

Todas las clases que se ubican en este paquete son acciones que va a ejecutar el actor de la automatización, una definición técnica sería algo como , una agrupación de interacciones o acciones de alto nivel, una acción de alto nivel se caracteriza porque no habla en términos de un click o un select sino en término de acciones como buscar, llenar, completar, iniciar sesión. 

User Interfaces

Estas son clases de mapeo de la interfaz del usuario, dentro encontramos atributos que hacen referencia a una parte de una página en específico de la aplicación a revisar, estos atributos son de tipo constantes ya que no tienen un valor que cambie a lo largo del ciclo de vida del escenario a revisar.

¿Cómo puedo abrir un ambiente en SAP?

En sap como en varios proyectos de desarrollo web tenemos varios ambientes, los cuales comúnmente son desarrollo, calidad y producción, para poder acceder a cualquiera de estos lo que necesitamos saber son ciertos datos específicos como lo son la IP, el puerto de conexión, el número del mandante y ya después los datos básicos de cualquier ingreso a un ambiente como lo son el usuario y la contraseña.

¿Cómo puedo moverme entre las diferentes transacciones que tiene SAP?

El ERP funciona internamente con transacciones que son pantallas en donde se realizan diferentes movimientos para cada una de las necesidades del cliente , es decir al tener toda la información de la empresa también maneja todos los recursos de esta misma, desde gestión humana hasta nómina. Cada una de estas transacciones tiene un nombre específico y con él se puede acceder a esta pantalla, pero es importante recalcar que el usuario que esté intentando ingresar a la transacción debe contar con los permisos necesarios para poder realizar movimientos, ver o cualquier otra acción que necesite.

¿Todos las interacciones que se usan normalmente en una automatización web sirven en SAP?

La gran mayoría de las interacciones que se usan en la web también se pueden usar en sap aunque en algunas ocasiones nos vamos a encontrar con interacciones que no funcionan del todo bien en la transacción que necesitamos , esto se debe a que , de momento, no se tiene una solución definitiva y completamente testeada en todas las transacciones que pueda ofrecer el ERP, ya que además de las típicas funciones que nos ofrece el ERP también tenemos los desarrollos independientes de cada una de las diferentes dependencias que cuentan con sus propias pantallas.

¿Cómo puedo mapear un elemento en SAP?

El mapear elementos dentro de SAP es una tarea relativamente sencilla ya que él cuenta con un módulo de mapeo en donde nos da el selector específico que necesitamos para que la automatización reconozca cuál es el elemento con el que se quiere interactuar. 

Dentro del menú de opciones observamos que tiene la funcionalidad de grabar y reproducir un script , esta funcionalidad lo que hace es grabar los movimientos que se realizan y entregar el selector de los elementos con los que se interactúa.

¿Los diferentes modelos que están en la web también están en SAP?

Se tiene las teclas básicas como lo serían el enter, el F1 al F12 y demás teclas, pero todo esto dependerá de qué tan desarrollada está la librería con la que se está realizando la automatización.

¿Se puede combinar dentro de un escenario de una automatización que se ejecute una parte en SAP y otra en la web?

Si pero se debe tener en cuenta con que libreria se está trabajando en cada una de las tasks, es decir para que no se presenten inconvenientes de interacción, se recomienda primero realizar todos los movimiento necesarios en un ambiente para luego llevarlos a otro, con esto se refiere a que por ejemplo se tome toda la información o se realice un movimiento primero en sap y una vez ya se tenga todo listo en ese ambiente, pasar al web para completar el escenario.  

Conclusión

En conclusión muchas actividades que se realizan en las automatizaciones web también se puede realizar en el ERP SAP pero todo esto dependerá de que tanto desarrollo tenga la librería que se utilice para realizar la automatización, algunas acciones pueden ejecutarse con métodos específicos como otras soluciones ya vienen listas para utilizarse. 

Por ejemplo en mi experiencia personal la librería con la que trabajo ya traía tasks listas de acciones que son repetitivas y comunes de utilizar como lo son el iniciar sesión, cerrar sesión, buscar una transacción, retroceder y demás.

New call-to-action

Suscríbete al
Blog Pragma

Recibirás cada mes nuestra selección de contenido en Transformación digital.

Imagen form