What is AppiumLibrary?

AppiumLibrary: Automatización Móvil con Robot Framework

29/08/2023

Valoración: 4.13 (15696 votos)

En el dinámico mundo del desarrollo de software, la automatización de pruebas se ha convertido en un pilar fundamental para garantizar la calidad y la eficiencia. Cuando se trata de aplicaciones móviles, esta necesidad se vuelve aún más crítica debido a la diversidad de dispositivos, sistemas operativos y tamaños de pantalla. Aquí es donde herramientas especializadas como AppiumLibrary entran en juego, ofreciendo una solución robusta y flexible para la automatización de pruebas en entornos móviles.

Can Appium client libraries run regular selenium sessions?
Of course, Appium client libraries only add functionality (in fact, they simply extend the standard Selenium clients), so they can still be used to run regular Selenium sessions.

AppiumLibrary no es solo una pieza de software; es un puente que conecta la simplicidad y legibilidad de Robot Framework con la poderosa capacidad de Appium para interactuar con aplicaciones Android e iOS. Si eres un ingeniero de calidad, un desarrollador o simplemente alguien interesado en el testing móvil, entender AppiumLibrary es crucial para llevar tus habilidades de automatización al siguiente nivel.

Índice de Contenido

¿Qué es AppiumLibrary? Una Fusión de Poderes

AppiumLibrary es, en esencia, una librería de pruebas diseñada específicamente para Robot Framework que facilita la interacción con aplicaciones móviles. Su funcionamiento es análogo al de Selenium WebDriver con navegadores web, pero en este caso, se comunica con el servidor Appium para manipular aplicaciones nativas, híbridas y web en dispositivos Android e iOS.

Esta librería se distingue por su capacidad de abstraer la complejidad subyacente de la interacción con dispositivos móviles, presentando una serie de palabras clave (keywords) intuitivas que pueden ser utilizadas directamente en los scripts de Robot Framework. Esto permite a los ingenieros de automatización escribir pruebas de manera más declarativa y legible, lo cual es una de las grandes ventajas de Robot Framework.

La historia de AppiumLibrary está ligada a la evolución de Appium. Modelada y bifurcada de `appiumandroidlibrary`, AppiumLibrary fue reimplementada para aprovechar las tecnologías de Appium 1.x y posteriores, lo que asegura su compatibilidad y relevancia en el ecosistema actual de automatización móvil.

Compatibilidad y Requisitos del Sistema

Para poder utilizar AppiumLibrary de manera efectiva, es fundamental cumplir con ciertos requisitos de compatibilidad. Actualmente, AppiumLibrary soporta versiones de Python 3.9 o superiores. Además, requiere la versión 5.1.1 o superior del cliente Python de Appium (`Appium Python Client`).

What is AppiumLibrary?

Es importante destacar que, aunque AppiumLibrary facilita la escritura de pruebas, su correcto funcionamiento depende en gran medida de tener un entorno de Appium configurado adecuadamente. Esto incluye un servidor Appium en ejecución y la configuración de un simulador/emulador o un dispositivo físico real para las pruebas. Los pasos específicos para configurar iOS y Android son distintos y suelen estar mejor detallados en la documentación oficial de Appium y en guías de configuración específicas del controlador (Driver-Specific Setup).

Instalación de AppiumLibrary: Un Proceso Sencillo

La instalación de AppiumLibrary es un proceso directo, especialmente si ya estás familiarizado con el ecosistema de Python y Robot Framework. A continuación, se detallan las opciones recomendadas:

Opción 1: Instalación Recomendada (usando pip)

La forma más sencilla y recomendada de instalar AppiumLibrary es a través del gestor de paquetes pip de Python. Este método asegura que obtendrás la versión más estable y actualizada disponible en PyPI (Python Package Index).

pip install --upgrade robotframework-appiumlibrary

Este comando no solo instala la librería si no está presente, sino que también la actualiza a la última versión disponible, lo cual es una buena práctica para mantener tu entorno al día.

Opción 2: Instalación Directa desde el Repositorio de GitHub

Para aquellos que desean acceder a las últimas características o contribuir al desarrollo, es posible instalar AppiumLibrary directamente desde su repositorio de GitHub. Este método descarga el código fuente más reciente de la rama principal (master) y lo instala.

pip install git+https://github.com/serhatbolsu/robotframework-appiumlibrary.git

Es importante tener en cuenta que esta instalación puede tomar un poco más de tiempo, ya que pip clonará el proyecto de AppiumLibrary a un directorio temporal antes de realizar la instalación.

Una vez instalada la librería, no olvides que aún necesitas configurar tu entorno de prueba móvil. Esto implica tener un simulador/emulador o un dispositivo real listo para ser utilizado en tus pruebas, así como un servidor Appium en ejecución. La documentación oficial de Appium y las guías específicas de la plataforma (iOS o Android) son recursos invaluables para esta configuración.

What is AppiumLibrary?
AppiumLibrary is a library modeled after (and forked from) appiumandroidlibrary but re-implemented to use Appium 1.X technologies.

Integración y Uso de AppiumLibrary con Robot Framework

Para comenzar a escribir pruebas con Robot Framework y AppiumLibrary, lo primero que debes hacer es importar la librería en tu suite de pruebas de Robot Framework. Esto se hace en la sección * Settings * de tu archivo de prueba.

Una de las mejores prácticas al usar AppiumLibrary con Robot Framework es no limitar el uso a las palabras clave de bajo nivel que proporciona la librería. Aunque palabras clave como Input Text o Click Element son fundamentales, es altamente recomendable crear palabras clave de más alto nivel que encapsulen la lógica de negocio o flujos de usuario complejos. Esto mejora drásticamente la legibilidad, la mantenibilidad y la reusabilidad de tus pruebas.

Considera el siguiente ejemplo, que ilustra cómo se pueden combinar palabras clave de AppiumLibrary para crear flujos de prueba más significativos:

* Settings * Documentation Simple example using AppiumLibrary Library AppiumLibrary * Variables * ${ANDROID_AUTOMATION_NAME} UIAutomator2 ${ANDROID_APP} ${CURDIR}/demoapp/ApiDemos-debug.apk ${ANDROID_PLATFORM_NAME} Android ${ANDROID_PLATFORM_VERSION} %{ANDROID_PLATFORM_VERSION=11} * Test Cases * Should send keys to search box and then check the value Open Test Application Input Search Query Hello World! Submit Search Search Query Should Be Matching Hello World! * Keywords * Open Test Application Open Application http://127.0.0.1:4723/wd/hub ... automationName=${ANDROID_AUTOMATION_NAME} ... platformName=${ANDROID_PLATFORM_NAME} platformVersion=${ANDROID_PLATFORM_VERSION} ... app=${ANDROID_APP} appPackage=io.appium.android.apis appActivity=.app.SearchInvoke Input Search Query [Arguments] ${query} Input Text txt_query_prefill ${query} Submit Search Click Element btn_start_search Search Query Should Be Matching [Arguments] ${text} Wait Until Page Contains Element android:id/search_src_text Element Text Should Be android:id/search_src_text ${text}

En este ejemplo, palabras clave como Input Search Query o Submit Search encapsulan múltiples acciones de bajo nivel, haciendo que el caso de prueba Should send keys to search box and then check the value sea muy fácil de entender, casi como una narrativa en lenguaje natural. Esta es la esencia de la automatización de pruebas basada en palabras clave con Robot Framework.

Appium Client Libraries y su Relación con AppiumLibrary

Es importante diferenciar entre las "Appium Client Libraries" genéricas y "AppiumLibrary" en sí misma. Las librerías cliente de Appium (como las de Python, Java, JavaScript, etc.) son envoltorios de las librerías cliente estándar de Selenium. Estas librerías proporcionan todos los comandos regulares de Selenium dictados por el protocolo JSON Wire, pero añaden comandos adicionales relacionados con el control de dispositivos móviles, como gestos multitáctiles y orientación de pantalla.

Estas librerías cliente implementan el Mobile JSON Wire Protocol (una extensión oficial del protocolo estándar) y elementos de la especificación W3C WebDriver (donde se define la API MultiAction). El servidor Appium, a su vez, define extensiones personalizadas a los protocolos oficiales, brindando a los usuarios de Appium acceso útil a varios comportamientos del dispositivo (como instalar/desinstalar aplicaciones durante una sesión de prueba). Esta es la razón por la que necesitamos clientes específicos de Appium, y no solo los clientes 'vainilla' de Selenium.

Do I need a client to run Appium scripts?
You need a client to write and run Appium scripts. You'll want to become very familiar with your client documentation (as well as the documentation of any Selenium client that the Appium client depends on) since that will be your primary interface to Appium. To learn more about clients, read our Client Intro.

AppiumLibrary, por su parte, se construye sobre el cliente Python de Appium. Es decir, extiende las funcionalidades ya presentes en el cliente Python para integrarlas sin problemas con el marco de trabajo de Robot Framework. Esto significa que, indirectamente, AppiumLibrary puede utilizarse para ejecutar sesiones regulares de Selenium, ya que las librerías cliente de Appium solo añaden funcionalidad y extienden los clientes estándar de Selenium.

¿Por qué es Necesario un Cliente para Ejecutar Scripts de Appium?

Para escribir y ejecutar scripts de Appium, es indispensable contar con una librería cliente. Estas librerías actúan como la interfaz principal entre tu código de prueba y el servidor Appium. Sin un cliente, no habría forma de enviar comandos al servidor Appium para interactuar con el dispositivo móvil.

La familiarización con la documentación de tu cliente preferido (y cualquier cliente de Selenium del que dependa) es crucial, ya que será tu principal punto de interacción con Appium. Existen clientes oficiales mantenidos por el equipo de Appium (como el de Node.js, Java, Python, Ruby, C#) y otros clientes desarrollados por la comunidad (como WebdriverIO, Nightwatch.js, y por supuesto, RobotFramework DSL a través de AppiumLibrary).

En general, cualquier cliente compatible con la especificación W3C WebDriver se integrará bien con Appium, aunque algunos comandos específicos de Appium podrían no estar implementados en clientes de terceros. Por eso, elegir un cliente bien mantenido y compatible con las extensiones de Appium es fundamental para una automatización móvil exitosa.

Preguntas Frecuentes sobre AppiumLibrary

¿AppiumLibrary es una librería oficial de Appium?

No, AppiumLibrary es una librería de terceros para Robot Framework, aunque utiliza el cliente Python de Appium y se basa en las tecnologías de Appium. Es mantenida por la comunidad y es ampliamente utilizada.

¿Necesito un servidor Appium en ejecución para usar AppiumLibrary?

Sí, absolutamente. AppiumLibrary se comunica con el servidor Appium, que es el encargado de interactuar con los dispositivos móviles. Sin un servidor Appium activo y configurado, AppiumLibrary no podrá realizar ninguna acción.

How do I install and use Appium Python?
An extension library for adding WebDriver Protocol and Appium commands to the Selenium Python language binding for use with the mobile testing framework Appium. There are three ways to install and use the Appium Python client. Install from PyPi, as 'Appium-Python-Client'. Install from source, via PyPi.

¿AppiumLibrary puede ejecutar pruebas web como Selenium?

Directamente, AppiumLibrary está diseñada para la automatización móvil. Sin embargo, dado que las librerías cliente de Appium (en las que se basa AppiumLibrary) extienden las librerías estándar de Selenium, estas pueden ser utilizadas para ejecutar sesiones regulares de Selenium. Esto significa que, si tu aplicación móvil tiene componentes web (una aplicación web móvil, por ejemplo), AppiumLibrary puede interactuar con ellos.

¿Dónde puedo encontrar la documentación de las palabras clave de AppiumLibrary?

La documentación de las palabras clave de AppiumLibrary se encuentra disponible en la página del proyecto en PyPI o GitHub, y es un recurso indispensable para conocer todos los comandos y funcionalidades que ofrece la librería.

¿Es complicado configurar el entorno de desarrollo completo para AppiumLibrary?

La configuración inicial de todo el entorno (Python, Robot Framework, Appium Server, SDKs de Android/iOS, emuladores/simuladores o dispositivos físicos) puede ser un poco abrumadora y compleja al principio, ya que implica múltiples componentes. Sin embargo, con paciencia y siguiendo las guías de configuración específicas (como las de Appium Quickstart Intro y las de Robot Framework), es un proceso totalmente manejable. Recursos adicionales como las notas de talleres (ej. RoboCon 2024) pueden ser de gran ayuda.

Conclusión: El Futuro de la Automatización Móvil con Robot Framework

AppiumLibrary es una herramienta invaluable para cualquier equipo que busque optimizar sus procesos de automatización de pruebas en aplicaciones móviles. Al combinar la robustez de Appium con la claridad y la capacidad de extensión de Robot Framework, ofrece una solución potente y flexible para enfrentar los desafíos del testing móvil.

Desde su sencilla instalación hasta su capacidad para crear pruebas altamente legibles y mantenibles, AppiumLibrary empodera a los equipos de QA para entregar software de mayor calidad en menos tiempo. Adoptar esta librería no solo agiliza el ciclo de desarrollo, sino que también fomenta una cultura de calidad continua, asegurando que las aplicaciones móviles funcionen de manera impecable en el diverso panorama de dispositivos actuales.

Si quieres conocer otros artículos parecidos a AppiumLibrary: Automatización Móvil con Robot Framework puedes visitar la categoría Librerías.

Subir