Introducción a APPIUM

Compartir en:

Appium es una herramienta de código abierto para automatizar aplicaciones nativas, móviles e híbridas en plataformas de escritorio con iOS móvil, Android móvil y Windows. Las aplicaciones nativas son aquellas desarrolladas usando iOS, Android o SDK de Windows. Las aplicaciones web móviles son aplicaciones web a las que se accede mediante un navegador móvil (Appium admite Safari en iOS y Chrome o la aplicación ‘Navegador’ incorporada en Android). Las aplicaciones híbridas tienen un contenedor de una “vista web”, un control nativo que permite la interacción con el contenido web. Proyectos como Apache Cordova o Phonegap facilitan la creación de aplicaciones utilizando tecnologías web que luego se agrupan en un contenedor nativo, creando una aplicación híbrida.

Es importante destacar que Appium es “multiplataforma”: le permite escribir pruebas en múltiples plataformas (iOS, Android, Windows), utilizando la misma API. Esto permite la reutilización de códigos entre las salas de pruebas de iOS, Android y Windows.

Para obtener información específica sobre qué significa que Appium “admita” sus plataformas y modalidades de automatización, consulte el documento de soporte de la plataforma .

http://appium.io/docs/en/about-appium/platform-support/index.html

Filosofía de Appium 

Appium fue diseñado para satisfacer las necesidades de automatización móvil de acuerdo con una filosofía descrita por los siguientes cuatro principios:

  1. No debería tener que volver a compilar su aplicación o modificarla de ninguna manera para automatizarla.
  2. No debe estar encerrado en un idioma o marco específico para escribir y ejecutar sus pruebas.
  3. Un marco de automatización móvil no debe reinventar la rueda cuando se trata de API de automatización.
  4. ¡Un marco de automatización móvil debe ser de código abierto, tanto en espíritu como en práctica, así como de nombre!

Diseño de Appium

Entonces, ¿cómo vive la estructura del proyecto Appium esta filosofía? Cumplimos con el requisito n. ° 1 mediante el uso de marcos de automatización proporcionados por el proveedor bajo el capó. De esta forma, no necesitamos compilar en su aplicación ningún código o framework específico o de terceros de Appium. Esto significa que estás probando la misma aplicación que estás enviando . Los marcos proporcionados por el proveedor que utilizamos son:

  • iOS 9.3 y superior: XCUITest de Apple
  • iOS 9.3 y versiones anteriores: UIAutomation de Apple
  • Android 4.2+: UiAutomator / UiAutomator2 de Google
  • Android 2.3+: Instrumentación de Google . (El soporte de instrumentación se proporciona agrupando un proyecto por separado, Selendroid )
  • Windows: WinAppDriver de Microsoft

Cumplimos con el requisito n. ° 2 ajustando los marcos proporcionados por el proveedor en una API, la API de WebDriver . WebDriver (también conocido como “Selenium WebDriver”) especifica un protocolo cliente-servidor (conocido como el protocolo JSON Wire Protocol ). Dada esta arquitectura cliente-servidor, un cliente escrito en cualquier idioma puede usarse para enviar las solicitudes HTTP apropiadas al servidor. Ya hay clientes escritos en todos los lenguajes de programación populares. Esto también significa que puede utilizar el corrector de prueba y el marco de prueba que desee; las bibliotecas cliente son simplemente clientes HTTP y se pueden mezclar en su código de la forma que desee. En otras palabras, los clientes de Appium & WebDriver no son técnicamente “frameworks de prueba”, son “bibliotecas de automatización”.

¡Puede gestionar su entorno de prueba de la forma que desee!

Cumplimos con el requisito n. ° 3 de la misma manera: WebDriver se ha convertido en el estándar de facto para la automatización de navegadores web, y es un borrador de trabajo del W3C . ¿Por qué hacer algo totalmente diferente para dispositivos móviles? En cambio, hemos extendido el protocolo con métodos adicionales de API útiles para la automatización móvil.

Debería ser obvio que el requisito # 4 es un hecho, estás leyendo esto porque Appium es de código abierto .

Concepto Appium

Arquitectura cliente / servidor
Appium es en esencia un servidor web que expone una API REST. Recibe conexiones de un cliente, escucha los comandos, ejecuta esos comandos en un dispositivo móvil y responde con una respuesta HTTP que representa el resultado de la ejecución del comando. El hecho de que tengamos una arquitectura de cliente / servidor abre muchas posibilidades: podemos escribir nuestro código de prueba en cualquier idioma que tenga una API de cliente http, pero es más fácil usar una de las bibliotecas de cliente de Appium. Podemos poner el servidor en una máquina diferente a la que se ejecutan nuestras pruebas. Podemos escribir un código de prueba y confiar en un servicio en la nube como Sauce Labs para recibir e interpretar los comandos.

Automatización de sesión siempre se realiza en el contexto de una sesión. Los clientes inician una sesión con un servidor de formas específicas para cada biblioteca, pero todos terminan enviando una solicitud POST /session al servidor, con un objeto JSON llamado el objeto ‘capacidades deseadas’. En este punto, el servidor iniciará la sesión de automatización y responderá con una ID de sesión que se utiliza para enviar más comandos.

Capabilities
Las capacidades o capabilities deseadas son un conjunto de claves y valores (es decir, un mapa o hash) enviados al servidor de Appium para indicarle al servidor qué tipo de sesión de automatización estamos interesados ​​en iniciar. También hay varias capabilities que pueden modificar el comportamiento del servidor durante la automatización. Por ejemplo, podríamos establecer la capabilitie platformNamede iOSdecirle a Appium que queremos una sesión de iOS, en lugar de una de Android o Windows. O podemos configurar la capabilitie safariAllowPopups true para garantizar que, durante una sesión de automatización de Safari, podamos usar JavaScript para abrir ventanas nuevas. Consulte el documento de capabilities para obtener la lista completa de las capabilities disponibles para Appium.

Appium Server
Appium es un servidor escrito en Node.js. Se puede construir e instalar desde la fuente o instalar directamente desde NPM:

$ npm install -g appium
$ appium

Clientes de Appium
Hay bibliotecas de clientes (en Java, Ruby, Python, PHP, JavaScript y C #) que son compatibles con las extensiones de Appium para el protocolo WebDriver. Cuando usa Appium, desea utilizar estas bibliotecas de cliente en lugar de su cliente WebDriver normal. Puede ver la lista completa de bibliotecas aquí .

Appium Desktop
Hay un contenedor GUI alrededor del servidor Appium que se puede descargar para cualquier plataforma. Viene incluido con todo lo necesario para ejecutar el servidor de Appium, por lo que no necesita preocuparse por el nodo. También viene con un Inspector, que le permite verificar la jerarquía de su aplicación. Esto puede ser útil al escribir pruebas.

Fuente:

Esta información fue extraída directamente del sitio oficial de Appium (http://appium.io/) y creo que no hay mucho que agregar al respecto, en otros artículos iré compartiendo más temas sobre Automatización con Appium. 

Compartir en:
Scroll to Top