14 de marzo de 2019

Mi primera experiencia automatizando con Robot framework - Jorge León Delgado


Antes de empezar con el artículo, explicaros que es Robot Framework y porque lo elegí como herramienta para automatizar las pruebas, os cuento el contexto en el que me encuentro y cuales son mis funciones actuales.


A mediados de noviembre, comencé a trabajar en mi actual empresa, tenia como objetivo poner en marcha un departamento de QA con lo que eso conlleva:

·       concienciar a toda la gente de la importancia de la calidad,

·       evitar la llamada “reticencia al cambio”,

·       formar el equipo de QA y,

·       temas más técnicos como: selección de herramientas.

El mayor problema, venía a la hora de elegir una herramienta para automatizar pruebas funcionales de interfaz. Con Selenium, tuve una breve experiencia en un proyecto de 3 meses, en el que aprendí más bien poco. A esto se une que yo nunca he trabajo como programador, tengo formación, pero mis conocimientos son mínimos y en mi zona hay pocos especialistas en el tema.

Con otro tipo de pruebas automatizadas, si me he peleado más, como: pruebas de rendimiento con Jmeter y de API con SoapUI.

Una vez contada esta bonita historia e introducidos en “mi contexto” entremos en materia…


¿Qué es Robot Framework?

“Robot Framework es un marco de automatización de pruebas genérico para pruebas de aceptación y desarrollo basado en pruebas de aceptación. Es un marco de prueba basado en palabras clave que utiliza la sintaxis de datos de prueba tabular.” (Fuente Wikipedia)

Es un framework open source, utiliza el enfoque de prueba basado en palabras clave (keyword-driven testing). Sus capacidades de prueba pueden ampliarse mediante bibliotecas de prueba implementadas con Python o Java, y los usuarios pueden crear nuevas palabras clave de alto nivel a partir de las existentes usando la misma sintaxis que se usa para crear casos de prueba.

Os dejo por aquí el enlace de su página oficial: https://robotframework.org/


DAR Herramientas de automatización

Como os he comentado en el primer punto, tenia que elegir una herramienta de automatización teniendo en cuenta que ni yo, ni las personas de mi equipo tenían conocimientos en programación. Esto, hacia que directamente descartara la herramienta más conocida de automatización de pruebas: Selenium.

Realice un DAR (Decision Analysis and Resolution) con varias herramientas, evaluando los siguientes criterios:

·       Programming skills

·       Precio

·       Basada en Selenium

·       Compatibilidad con:

o   Herramientas de gestión de pruebas

o   Jira

o   Jenkins

o   Linux

Tras realizar el DAR, me quedaron dos herramientas con las que hice varias pruebas de concepto, una de ellas era Robot Framework.

Los criterios que seguí para evaluar estas herramientas en las pruebas de concepto eran los siguientes:

·       Facilidad de aprendizaje

·       Instalación y configuración

·       Grabación de prueba/creación del script de prueba

·       Tratamiento de los datos de prueba (por fichero, desde base de datos…)

·       Organización de las pruebas siguiendo el modelo Page Object

·       Ejecución de la prueba

·       Informes

·       Soporte y comunidad


Razones para elegir Robot Framework

Tras finalizar las pruebas de concepto con estas dos aplicaciones, me decidí a elegir Robot Framework por:

·       Su facilidad de aprendizaje: aunque la otra herramienta que probé también era muy intuitiva, incluso tenia una interfaz gráfica y un grabador de pruebas, me pareció mucho más sencilla la sintaxis tabular.

·       La instalación es por línea de comandos, pero es muy sencilla y es compatible con los sistemas operativos más conocidos (Windows, Linux, OS X…).

·       Selenium: robot framework esta basado en librerías y la más usada es Selenium2Library que como podéis deducir, está basada en Selenium.

·       Informes y evidencias de pruebas: Son muy claros y comprensibles. Se realiza una captura de pantalla al fallar la prueba.

·       Su comunidad de usuarios es muy muy extensa, teniendo incluso un canal de Slack propio con usuarios muy activos por lo que el soporte es casi inmediato.

·       Potencial: tiene una colección de librerías muy amplia dando un amplio margen para poder realizar cualquier tipo de pruebas, por ejemplo, existe también una librería basada en Appium permitiendo también extender la librería de Selenium.

Inconvenientes

No todo iba a ser bonito. Os cuento las pegas que me he encontrado en estos 4 meses automatizando con el Robot:

·       La estrecha relación con Selenium hace que se hereden los problemas conocidos de esta herramienta: localizadores, tiempos de espera…

·       Editores. Disponemos de varios editores compatibles, pero ninguno me ha acabado de llenar (Ride, RED, Pycharm, Sublime)

·       Evidencias de prueba. No es posible grabar en vídeo las pruebas falladas. Para mi es más que suficiente que se haga solamente, pero algunos desarrolladores lo ven necesario.

Como os dije al principio, no soy un experto automatizando pruebas, sin embargo, me ha sido relativamente fácil crear un conjunto de pruebas automatizadas para una aplicación en un par de meses. Por lo tanto, creo que Robot Framework es una herramienta muy a tener en cuenta dentro de los RPA actuales y con un funcionamiento y una curva de aprendizaje muy sencillos.

En breve, os podré contar más experiencias sobre el trabajo realizado con esta herramienta. Si tenéis alguna duda más al respecto, podéis encontrarme en la comunidad de QA Lovers.
 Jorge León Delgado

1 comentario:

¿Hablamos?

Cuéntanos como ayudarte

Si quieres más información sobre lo que hacemos, necesitas ayuda o quieres hablar con nosotr@s, solo tienes que ponerte en contacto.

Teléfono:

(+34) 648 961 876