Aclaración: Este tutorial fue originalmente creado para uso interno en la empresa mientras estudiaba el framework. Es del 2020, por lo que verán que instalé la herramienta en Windows 10; sin embargo, la instalación y la forma de trabajar no han cambiado mucho. Decidí compartirlo porque es una pena tenerlo perdido entre mis notas. Quizás lo actualice en el futuro.
Robot Framework es un marco de automatización de código abierto genérico. Se puede utilizar para la automatización de pruebas y la automatización de procesos robóticos (RPA).
Cuenta con un soporte activo, y muchas empresas líderes en la industria lo utilizan en su desarrollo de software.
Robot Framework es abierto y extensible y se puede integrar con prácticamente cualquier otra herramienta para crear soluciones de automatización potentes y flexibles. Ser de código abierto también significa que Robot Framework es de uso gratuito sin costos de licencia.
Tiene una sintaxis sencilla y utiliza palabras clave legibles por humanos. Sus capacidades se pueden ampliar mediante bibliotecas implementadas con Python o Java. El marco tiene un ecosistema rico a su alrededor, que consta de bibliotecas y herramientas que se desarrollan como proyectos separados.
El proyecto Robot Framework está alojado en GitHub, donde puede encontrar más documentación, código fuente y seguimiento de problemas. Las descargas se alojan en PyPI.
Robot Framework es independiente del sistema operativo y la aplicación. El marco principal se implementa con Python y también se ejecuta en Jython (JVM) e IronPython (.NET).
Robot Framework en sí es un software de código abierto publicado bajo Apache License 2.0 , y la mayoría de las bibliotecas y herramientas del ecosistema también son de código abierto. El marco se desarrolló inicialmente en Nokia Networks y fue de código abierto en 2008.
https://robotframework.org/
¿Qué es un framework para automatizar pruebas?
▸ Es un lenguaje donde se puede escribir las pruebas.
▸ Tiene rutinas de códigos.
▸ Se puede reusar estos códigos para diferentes secciones de una
pagina.
▸ Soporta librerías que llevan a cabo diferentes acciones (Probar
Interfaces Web, API, Bases de Datos, Móviles)
▸ Tiene una capa de abstracción que te permite escribir los
casos en lenguaje natural.
▸ Permite correr casos con el uso de Etiquetas.
▸ Te permite seleccionar los casos por Suites o configuraciones.
▸ Permite la integración para configurar los códigos de las
pruebas y correrlos en diferentes horarios.
▸ Realiza los reportes con los resultados, e incluye los pasos, las
horas, te permite buscar en los resultados e incluye
impresiones de pantalla cuando algo no funciona.
¿Por qué Robot Framework?
- Permite una sintaxis tabular fácil de usar para crear casos de prueba de manera uniforme.
- Proporciona la capacidad de crear palabras clave reutilizables de nivel superior a partir de las palabras clave existentes.
- Proporciona informes de resultados y registros fáciles de leer en formato HTML.
- Es independiente de la plataforma y la aplicación.
- Proporciona una API de biblioteca simple para crear bibliotecas de prueba personalizadas que se pueden implementar de forma nativa con Python o Java.
- Proporciona una interfaz de línea de comandos y archivos de salida basados en XML para la integración en la infraestructura de construcción existente (sistemas de integración continua).
- Brinda soporte para Selenium para pruebas web, pruebas de GUI de Java, procesos en ejecución, Telnet, SSH, etc.
- Admite la creación de casos de prueba basados en datos .
- Tiene soporte incorporado para variables , práctico particularmente para pruebas en diferentes entornos.
- Proporciona etiquetado para categorizar y seleccionar casos de prueba que se ejecutarán.
- Permite una fácil integración con el control de código fuente: las suites de prueba son solo archivos y directorios que se pueden versionar con el código de producción.
- Proporciona caso de prueba y la prueba de la suite de instalación y el desmontaje -level.
- La arquitectura modular admite la creación de pruebas incluso para aplicaciones con varias interfaces diversas.
https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id498
Origen e historia
2005:
‣ Desarrollado en Finlandia
‣ Básicamente nace como idea de tésis de maestria de Pekka Klärck y para Nokia.
2008:
‣ Se lanza la version 2.0 como versión de código abierto.
2020:
‣ Versión actual: 3.2.2
Funcionalidades y capacidades
‣ Multiplataforma, se puede usar tanto en Windows como Mac y Linux
‣ Es un lenguaje basado en Keywords y con capacidades de inserción de datos, según lo requerido
en la prueba.
‣ Lenguaje Natural de acuerdo al área de negocios
‣ Librerias:
Instalación en Windows 10
Ir a la pagina del lenguaje Python: https://www.python.org/
Seleccionar versión mayor a 3
Una vez descargado ejecutar el instalador
- Dejar tildado el checkbox “Install launcher for all users” y también “Add Python 3.8 to PATH” esta opción permitirá ejecutar comando de python o del framework sin ser administrador.
- Luego seleccionar “Install Now”
Hacer click en “Disable path length limit”
Luego de finalizada la instalación hacer click en botón “Close”
Verificar versión instalada de python
La instalación de python viene por defecto con el instalador de paquetes/librerías llamado “pip”, similar a npm de node y NuGet de .NET
Con “pip” instalar robot framework
pip install robotframework
Se ha instalado correctamente robotframework.
Luego de instalar correctamente puede aparecer este mensaje de warning, detectó que el “pip” instalado por defecto tiene una versión actualizada disponible, como dice en el warning actualizamos con el comando:
pip install --upgrade pip
Para saber los paquetes que instalamos:
pip list
Otra manera con el comando del framework:
robot --version
Instalar la librería Selenium:
pip install --upgrade robotframework-seleniumlibrary
Verificar la librería instalada en la lista de paquetes:
Configurar Drivers de navegadores:
Navegadores soportados
Chromedriver
Ir a https://chromedriver.chromium.org/:
Luego de haber descargado el archivo descomprimir el zip, luego cortar y pegar el .exe a la carpeta de PATH:
C:\Users\jruiz\AppData\Local\Programs\Python\Python38-32\Scripts
Firefox
Descargar el driver en: https://github.com/mozilla/geckodriver/releases
Luego mismo procedimiento de chrome, después de descomprimir el zip cortar y pegar el .exe a la carpeta de PATH:
C:\Users\jruiz\AppData\Local\Programs\Python\Python38-32\Scripts
Opera
- Primero tener instalado la ultima versión del navegador Opera
- Luego descargar driver en: https://github.com/operasoftware/operachromiumdriver/releases
Editores de código
https://robotframework.org/#tools
Visual Studio Code
Instalar plugins para Visual Studio Code
Robot Framework Intellisense
Ahora aparece resaltado la sintaxis
Robotframework Debugger
Crear nuevo proyecto
Luego de instalar los plugins no hace falta otra configuracion, para comenzar a escribir los casos de pruebas hay que crear una nueva carpeta y dentro crear por ejemplo el archivo primer-automatizacion.robot
Test Case
*** Settings ***
Documentation Existe en un documento de texto los pasos manuales
... Esta es mi primera automatizacion
Library SeleniumLibrary
*** Variables ***
${palabraABuscar} clima hoy
${Navegador} chrome
${URL} https://www.google.com/
*** Keywords ***
Abrir Navegador y Esperar Logo
#se tiene que separar por tabulacion (o tres veces barra espaciadora) cada nueva linea
#tambien se tiene que separar con tabulacion en el comando y el parametro
Open Browser ${URL} ${Navegador}
Wait Until Element Is Visible xpath=//*[@id="hplogo"]
*** Test Cases ***
Busqueda de palabras en google
Abrir Navegador y Esperar Logo
Input Text xpath=//*[@id="tsf"]/div[2]/div[1]/div[1]/div/div[2]/input ${palabraABuscar}
Click Element xpath=//*[@id="hplogo"]
Click Element xpath=//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]
Title Should Be ${palabraABuscar} - Buscar con Google
Page Should Contain ${palabraABuscar}
Close Browser
Hacer click en el botón de búsqueda sin escribir palabras en Google
Abrir Navegador y Esperar Logo
Click Element xpath=//*[@id="tsf"]/div[2]/div[1]/div[3]/center/input[1]
Title Should Be Google
Close Browser
Para ejecutar este caso prueba desde la consola de windows:
robot primer-automatizacion.robot
Ejecutar un caso específico
robot -t "Verify that a valid user can login to the system" LoginTest.robot
Sintaxis
La sintaxis consta basicamente de 4 segmentos
Settings, Variables, Keywords y Test Cases
Settings
En ese segmento a sintaxis suele ir:
- Documentacion
- Importacion de Resources: Una página de recursos es un lugar en donde puedo buscar elementos comunes que tengo para todas las pruebas . Luego para llamar a esa pagina tengo que decir en donde esta ese archivo o librería para luego utilizarlo.
- Por ejemplo los elementos de setting son muy común o recurrentes porque en todos los lugares voy a usar la librería.
- Library: se importan las librerias, la mas conocida SeleniumLibrary.
*** Settings ***
Documentation Existe en un documento de texto los pasos manuales
... Esta es mi primera automatizacion
Library SeleniumLibrary
Resource recursos.robot
Variables
Se definen las variables a utilizar dentro de un test y tambien keywords
*** Variables ***
${palabraABuscar} clima hoy
${Navegador} chrome
${URL} https://www.google.com/
las variables no se reducen a tipo string, hay mas: https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#using-variables
Keywords (palabras clave)
Los keywords son las acciones como:
Open Browser
Wait Until Element Is Visible
Input Text
Click Element
Click Element
Title Should Be
Page Should Contain
Close Browser
Se pueden armar keywords para armar mis propios procesos
Ejemplo importando Resource (importacion de cualquier archivo)
Robot Framework y la libreria Selenium
Selenium Library es una librería externa de Robot Framework para probar
interfaces de aplicaciones web.
Se basa en Keywords que llevan a cabo diferentes funciones, según lo que
requieras en tu caso de prueba, entonces debes seleccionar cual KEYWORD
funciona mejor para las acciones que tengas en tu caso de prueba
Como funcionan los keywords
Hay una libreria que incluye todos los keywords que podes encontrar acá:
https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
Ahi encontrarás como usar cada keyword y cada valor del argumento debe estar
separado por dos o más espacios.
Locators (Localización de elementos)
Todas las palabras clave en SeleniumLibrary que necesitan interactuar con un elemento en una página web toman un argumento normalmente llamado locator
que especifica cómo encontrar el elemento. La mayoría de las veces, el localizador se proporciona como una cadena utilizando la sintaxis del localizador que se describe a continuación.
Sintaxis del localizador
SeleniumLibrary admite la búsqueda de elementos en función de diferentes estrategias, como la identificación del elemento, las expresiones XPath o los selectores CSS. La estrategia puede especificarse explícitamente con un prefijo o puede ser implícita.
Estrategia de localizador predeterminada
De forma predeterminada, se considera que los localizadores utilizan la estrategia de localizador predeterminado específica de la palabra clave. Todas las palabras clave admiten la búsqueda de elementos basados en atributos id
y name
, pero algunas palabras clave admiten atributos adicionales u otros valores que tienen sentido en su contexto. Por ejemplo, Click Link admite el href
atributo y el texto del enlace y la adición al normal id
y name
.
Ejemplos:
Click Element xpath=/html/body/div[2]/div[2]/form/div[2]/div[1]/div[3]/center/input[1]
Se va a copiar este texto “#hplogo”
Luego lo podemos utilizar con el Keyword “Wait Until Element Is Visible”
Wait Until Element Is Visible id=hplogo #va sin el numeral
Si seleccionamos Copy XPath el texto es “//*[@id="hplogo"]”
Wait Until Element Is Visible xpath=//*[@id="hplogo"]
Implicitamente tambien comprende que tipo de selector estoy agregando
Wait Until Element Is Visible //*[@id="hplogo"]
Lista de diferentes tipos de selectores
BuiltIn
https://robotframework.org/robotframework/latest/libraries/BuiltIn.html
BuiltIn
es la biblioteca estándar de Robot Framework que proporciona un conjunto de palabras clave genéricas que se necesitan con frecuencia. Se importa automáticamente y, por lo tanto, siempre está disponible. Las palabras clave proporcionadas se pueden utilizar, por ejemplo, para verificaciones (por ejemplo, Should Be Equal, Should Contain), conversiones (por ejemplo, Convert To Integer) y para varios otros propósitos (por ejemplo, Log, Sleep, Run Keyword If, Set Global Variable).
En el Shortcuts estan todos los elementos para poder encontrarlos rapidadamente.
https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Create%20List
Paginas que fui encontrando
Otra documentacion completa
https://baishanlu.gitbooks.io/robot-framework-cn-en-user-manual/content/robot_framework_user_guide/version_287.html
xpath
https://www.mclibre.org/consultar/xml/lecciones/xml-xpath.html
trucos comando
https://dev.to/juperala/how-to-run-robot-framework-test-from-command-line-5aa
Top comments (0)