Conoce la nueva herramienta que hemos desarrollado para integrar sistemas AS400 a la automatización de pruebas E2E. Nuestra librería llevará la adherencia de Serenity BDD al ecosistema legado de tu organización a otro nivel. De uso gratuito, podrás extender las capacidades de Screenplay y sus buenas prácticas sin problemas a tus sets de pruebas, ampliando aún más la cobertura de las mismas y la confiabilidad de tus sistemas y procesos.
Automatizando pruebas funcionales de alto nivel en sistemas AS400
La automatización de pruebas es un proceso que nos permite reutilizar escenarios de pruebas, agilizar su ejecución y disminuir la tasa de error humano. Es una actividad que se puede realizar en aplicaciones móviles, web o de escritorio. Sin embargo, existe otro tipo de sistemas que por su naturaleza no tienen tanta adherencia a un proceso automatizado de pruebas ya sea porque se trata de tecnologías muy antiguas, arquitecturas muy acopladas o que no cumplen necesariamente las buenas prácticas y principios modernos del desarrollo de software. Una de ellas es AS400, un sistema desarrollado por IBM que permite ser utilizado mediante la implementación de terminales como lo pueden ser x-treme de Microfocus la cual es paga o la versión oficial de IBM System i Access de uso gratuito.
Automatizar pruebas para estas terminales es complejo y no se cuenta con suficiente documentación dado que estas únicamente están diseñadas con el único propósito de permitir la visualización de las pantallas desarrolladas. En este artículo hablaremos de una librería que hemos desarrollado para facilitar la automatización de pruebas sobre estas terminales conservando todos los beneficios que ofrece SerenityBDD más el patrón Screenplay en la automatización de pruebas E2E.
AS400 Automation Library
Es una librería construída para facilitar el uso del patrón Screenplay para pruebas en sistemas AS400 que además emula terminales para evitar algunas dependencias en función del performance y licencias que pueden limitar la ejecución de las pruebas. Desde la experiencia en la implementación y puesta en marcha de los escenarios automatizados los cuales dependen de una terminal como es natural en este tipo de sistemas, uno de los mayores inconvenientes es la ejecución en una máquina virtual o en un equipo diferente al ya parametrizado y configurado para este fin. Es con esto que la librería elimina este impedimento garantizando así que con una mínima configuración inicial las pruebas desarrolladas se ejecutan sin ningún inconveniente.
La librería también se caracteriza por ser:
1. De código abierto
2. Gratis
3. Fácil de usar
4. Intuitiva y simple
Uso: Métodos y funciones.
Dado que la librería se concibió mediante el patrón Screenplay bajo el framework de Serenity BDD, se buscó respetar la fluidez en la sintaxis propia del patrón con el fin de conservar la prueba como parte de la documentación del proceso más que como un simple script. Por tanto los elementos que habilitamos para su uso fueron:
Propiedades Serenity: Capabilities
Dentro de la librería podemos utilizar las siguientes propiedades que al ingresarlas dentro del archivo serenity.properties, permitirán tener control sobre el tiempo máximo de espera en la conexión , además del momento y formato que deseamos para la captura de las respectivas evidencias en tiempo de ejecución.
Interacciones:
Esta capa nos permitirá interactuar con la respectiva aplicación AS400 sin necesidad de una terminal como intermediario. Esto gracias a la conexión mediante Telnet (puerto 23) o TCP (puerto 443) con el sistema a probar.
Validaciones:
Con el fin de validar información dentro de la terminal se tendrá la posibilidad de obtener texto al momento de realizar la prueba e interactuar con el sistema.
Mapeo de elementos
Al igual que en las automatizaciones para páginas web o aplicaciones móviles, al momento de interactuar con la terminal tendremos que indicarle a la automatización con que elemento queremos interactuar. Para esto tenemos la posibilidad de ubicar los elementos ya sea mediante coordenadas o etiqueta de un campo presente.
1. Etiqueta
Esta es la forma en la que podremos ubicar el elemento por etiqueta dentro de la terminal.
Target.the(String).locatedByTag(String)
Donde es importante determinar que en estos casos el campo a editar debe aparecer a la derecha de la etiqueta seleccionada.
2. Coordenadas
Las terminales usadas para la visualización de los sistemas AS400 muestran la posición en donde se encuentra ubicado el cursor. Dicha posición puede variar entre terminales, pero comúnmente se tiene unas coordenadas que inician siempre en 1 y van hasta 80 columnas y 24 filas. Por lo que nos moveremos en estos rangos para determinar la posición donde queremos realizar una interacción. Identificadas las coordenadas podremos así determinar dónde queremos interactuar creando el objeto que nos permitirá realizar esta acción.
Target.the(String).locatedByCoordinate(Coordinate)
Dónde consigo el repo para colaborar?