Mi viaje de dos meses con Robot Framework: Ideas clave y conclusiones

Mi viaje de dos meses con Robot Framework: Ideas clave y conclusiones

Pablo Peña Marín, QA Engineer at SNGULAR

Pablo Peña Marín

QA Engineer at SNGULAR

20 de diciembre de 2023

Durante aproximadamente dos meses, he estado trabajando con Robot Framework para la automatización de pruebas y me gustaría resumir y compartir mi experiencia después de usar esta herramienta de automatización de pruebas en mi trabajo diario de aseguramiento de la calidad del software.

Como podrán entender, dos meses es poco tiempo para conocer cualquier herramienta, pero considero que es suficiente para formar una opinión inicial sobre los beneficios y problemas que uno puede encontrar al usar este marco de trabajo. Mi objetivo es ayudar a cualquier persona interesada en usar Robot Framework como herramienta de automatización de pruebas en una organización, proyecto personal o simplemente para aprender más sobre él, proporcionando algunas ideas y conclusiones de mi experiencia personal.

¿Qué es Robot Framework?

Quiero comenzar diciendo que Robot Framework es un marco de trabajo de código abierto escrito en Python que se puede utilizar principalmente para la automatización de pruebas web y móviles. Según Wikipedia, fue desarrollado originalmente en 2005 en Nokia Network para ser utilizado como herramienta de automatización para esta empresa. Más tarde, en 2008, se lanzó la versión 2.0 como software de código abierto.

Robot Framework ganó popularidad debido a su curva de aprendizaje relativamente corta, principalmente porque utiliza palabras clave que son fácilmente legibles y escritas y tiene una serie bastante grande de bibliotecas que amplían sus capacidades.

Robot Framework - Las ventajas:

Entonces, comencemos con algunos de los beneficios y pros que he recopilado después de usar Robot Framework.

1. Enfoque basado en palabras clave

Como mencioné, funciona usando palabras clave en lugar de código directo, esto puede verse como una ventaja ya que aumenta la legibilidad de las pruebas para personas sin conocimientos de programación (es decir, gerentes de producto).

Cada caso de prueba se escribe como un texto simple y está compuesto por palabras clave. Esto le permite crear funcionalidades complejas usando las palabras clave, por ejemplo, dentro de una palabra clave, puede usar una condicional o un bucle.

keywordsexample.png Robot Framework Docs

loopexample.png Robot Framework Docs

2. Fácil de aprender y usar

Como es un marco construido usando este enfoque de palabras clave y no es necesario conocer un lenguaje de programación, la curva de aprendizaje es bastante corta. Por supuesto, si tienes conocimientos de programación, sería mucho más fácil de aprender.

testcaseexample.png Robot Framework Docs

3. Rico Ecosistema

Hay una amplia gama de bibliotecas y herramientas que complementan el marco. Para empezar, tiene una serie de bibliotecas integradas que proporcionan palabras clave principales para incluir en sus pruebas, como ejemplo podemos mencionar:

  • Biblioteca BuiltIn: esta es la biblioteca predeterminada que viene con Robot Framework y proporciona palabras clave esenciales para el control de flujo, manejo de variables y registro.
  • Biblioteca Selenium: proporciona palabras clave para interactuar con navegadores web usando Selenium. Le permite automatizar la prueba de aplicaciones web.
  • Biblioteca de colecciones: proporciona palabras clave para trabajar con listas y diccionarios, permitiendo una manipulación eficiente de datos.

También tiene varias bibliotecas externas que mejoran las capacidades de Robot Framework, haciéndolo adaptable a una amplia gama de escenarios de prueba y tareas de automatización. Veamos algunos ejemplos:

  • Biblioteca Requests: facilita la realización de solicitudes HTTP, permitiendo probar APIs REST. Está construida sobre la biblioteca 'requests' de Python.
  • Biblioteca Database: proporciona palabras clave para interactuar con bases de datos, admitiendo tanto bases de datos relacionales como no relacionales.
  • Biblioteca Appium: extiende las capacidades de Robot Framework para la prueba de aplicaciones móviles, utilizando el marco de automatización Appium.

Como puedes ver, esta es una gran ventaja que te permite mejorar tu cobertura de pruebas dentro del mismo ecosistema.

4. Control de ejecución de pruebas

Como otros marcos, Robot Framework le permite usar etiquetas para planificar fácilmente la ejecución de sus pruebas y ejecutarlas en el orden que desee según su estrategia de prueba, tipo de pruebas, etc.

Además, en caso de tener un conjunto de pruebas grande, existe la posibilidad de ejecuciones paralelas usando Pabot, el ejecutor paralelo para Robot Framework.

5. Comunidad y documentación

Por último, pero no menos importante, este marco tiene una comunidad grande y activa que proporciona toneladas de información y documentación para resolver cualquier problema posible con el que pueda encontrarse. Según stackshare.io, más de 44 grandes empresas usan activamente Robot Framework.

Robot Framework - Las desventajas:

Ahora que he mencionado los principales beneficios, también quiero compartir algunas desventajas que encontré mientras usaba Robot Framework, que considero que otras herramientas de automatización de pruebas pueden hacer mejor.

1. Dependencia de Python

Como se mencionó antes, Robot Framework está construido con Python, por lo que si desea ampliar sus funcionalidades más allá de las palabras clave pre escritas, debe tener conocimientos de Python. Esto puede no ser tan común como JavaScript o Java para algunos probadores o ingenieros de aseguramiento de calidad. Por lo tanto, es posible que desee considerar que podría haber una curva de aprendizaje allí.

2. Informes de pruebas

Aunque las ejecuciones de Robot Framework devuelven informes de prueba bastante decentes que incluyen registros paso a paso e imágenes, considero que la falta de reproducción de video de la ejecución es una gran desventaja. En mi experiencia, los informes de video te ayudan a depurar de una gran manera en caso de que tus pruebas fallen. Tome como ejemplo el Cypress Test Runner, una plataforma que incluye registros detallados, imágenes y un video de la ejecución.

3. Soporte de IDE

Robot Framework se puede usar con casi cualquier IDE (Entorno de Desarrollo Integrado), incluso tiene su propio RIDE (la R es de Robot). También tiene extensiones que proporcionan soporte y teóricamente facilitan la escritura.

Pero en mi corta experiencia usando este marco en Visual Studio Code, puedo decir que la extensión sugerida Robot Code no proporciona tanto soporte como se esperaría. Por ejemplo, no se proporciona formateo automático, la autocompletación es limitada, etc.

También probé otra extensión, Robot Framework Language Server, que hace la experiencia un poco mejor, pero aún no hay formateo automático, lo cual es un gran problema para mí.

Conclusión

En mi opinión, 2 meses es poco tiempo para tener una opinión sólida de cualquier marco o lenguaje, ya que con el tiempo se pueden ver más ventajas o desventajas que actualmente no puedo tener en cuenta. Pero espero que este artículo pueda ayudarte a formar una opinión preliminar y tomar una decisión sobre las funcionalidades básicas y limitaciones de Robot Framework.

Por último, quiero concluir diciendo que no hay una herramienta de automatización mejor o peor per se, depende de sus necesidades específicas de prueba y estrategia. Por lo tanto, preguntas como: "¿Cuál es la experiencia técnica de su equipo de pruebas?" "¿Cuál es el tamaño de su conjunto de pruebas?" "¿Cuáles son mis necesidades de prueba (móvil, web, ambas)?" van a ser clave para tomar una decisión sobre la mejor herramienta para ti.

Pablo Peña Marín, QA Engineer at SNGULAR

Pablo Peña Marín

QA Engineer at SNGULAR

Pablo es una apasionado de las pruebas de software y la automatización de pruebas de software. Solucionador de problemas por naturaleza, aplica esta filosofía creando soluciones que ayudan a resolver problemas de la vida real, a través de la tecnología. Tiene experiencia en el uso de herramientas de automatización como WebDriverIO, Selenium, Cypress y Robot Framework.