Arquitectura de Appium para pruebas de aplicaciones móviles

Publicado: 2020-06-26

Tabla de contenido

Descripción general de Appium

Appium es una herramienta/marco de pruebas de aplicaciones móviles gratuito que proporciona automatización para aplicaciones móviles iOS y Android. Appium es una arquitectura cliente-servidor que acepta código de prueba escrito en Java, Python, Ruby, JavaScript, etc.

En esencia, Appium es un servidor web escrito en el lenguaje de programación Node.js que crea sesiones de iOS y Android utilizando el protocolo JSON.

Appium Server realiza las siguientes acciones

  • Recibe una conexión del cliente en forma de objeto JSON a través de HTTP
  • Inicia una sesión y luego devuelve el ID de la sesión
  • Escucha los comandos emitidos
  • Ejecuta estos comandos en un dispositivo móvil
  • Responde con una respuesta HTTP

Fuente

Conceptos clave de Appium

Antes de profundizar en la arquitectura de Appium , primero comprendamos los conceptos clave asociados con la arquitectura de Appium .

Cliente de Appium

El cliente de Appium es un código automatizado escrito en cualquier lenguaje con el que se sienta cómodo (como PHP, Java , Phyton, etc.). El cliente de Appium contiene los detalles de configuración del dispositivo móvil y la aplicación junto con la lógica o el código para ejecutar los casos de prueba.

Servidor Appium

El servidor Appium es un servidor HTTP escrito en el lenguaje de programación Node.js que recibe solicitudes de conexión y comandos del cliente Appium en formato JSON y ejecuta esos comandos en un dispositivo móvil. Appium Server se inicia antes de invocar el código de automatización.

El servidor interactúa con las plataformas iOS y Android y crea una sesión para interactuar con los dispositivos finales de las aplicaciones móviles.

Leer: Las 20 mejores ideas y temas de proyectos de Android de tendencia para principiantes

Dispositivo final

El dispositivo final es principalmente un dispositivo móvil en tiempo real o un emulador. Los scripts automatizados son ejecutados en el dispositivo final por el servidor Appium por los comandos del cliente.

Protocolo de conexión JSON

En la arquitectura de Appium, el protocolo de conexión JSON es un mecanismo de transporte que se utiliza para establecer la comunicación entre el cliente de Appium y el servidor de Appium. Este protocolo controla el comportamiento de diferentes dispositivos móviles durante una sesión. Es un conjunto de puntos finales predefinidos expuestos a través de la API RESTful. Por ejemplo, si un cliente desea enviar datos a un servidor, el cliente los convierte en un objeto JSON y los envía al servidor. Luego, el servidor analiza el objeto JSON recibido y lo vuelve a convertir en datos para su uso.

Arquitectura de Apio

Comprendamos ahora la arquitectura de Appium .

Como se mencionó anteriormente, el servidor de Appium es un servidor HTTP que lee las solicitudes HTTP de las bibliotecas del cliente en formato JSON y envía estas solicitudes a la plataforma adecuada. El servidor de Appium reconoce estas solicitudes y crea una sesión de automatización con el dispositivo final correspondiente. Una vez creada la sesión, el servidor de Appium inicia la ejecución de casos de prueba en el dispositivo final.

El servidor de Appium maneja las solicitudes de manera diferente para iOS y Android, según la plataforma en la que se ejecuta. Las siguientes secciones explicarán cómo Appium ejecuta los comandos de manera diferente en estas plataformas.

Appium trabajando en un dispositivo iOS

En un dispositivo iOS, Appium utiliza la API de UIAutomation (biblioteca de JavaScript proporcionada por Apple Company) para conectarse con los elementos de la interfaz de usuario de la aplicación.

La figura anterior de la arquitectura de Appium iOS describe la arquitectura de Appium para la automatización de iOS. Vamos a decodificar la figura de la arquitectura iOS Appium paso a paso:

  • El cliente de Appium se comunica con el servidor de Appium mediante el protocolo de conexión JSON y envía el comando en formato JSON al servidor.
  • Luego, el servidor establece una conexión con el cliente y reenvía la solicitud al ICS (Instruments Command Server). El servidor de Appium también envía un archivo bootstrap.js al dispositivo iOS. ICC (cliente de comando de instrumentos) toma el comando y lo ejecuta en el archivo bootstrap.js dentro del entorno del dispositivo iOS.
  • Una vez que se completa la operación anterior, el cliente devuelve los detalles del registro del comando ejecutado al servidor.

Appium trabajando en un dispositivo Android

En un dispositivo Android, Appium usaría el marco UIAutomator desarrollado por los desarrolladores de Android para interactuar con los elementos de la interfaz de usuario de la aplicación. El UI Automator es un marco utilizado para probar la interfaz de usuario.

La figura anterior de la arquitectura Appium Android describe la arquitectura Appium para la automatización de Android. Las cifras anteriores reemplazan bootstrap.js con bootstarp.jar.

Aprenda: SDK de Android: un tutorial detallado para principiantes

Vamos a decodificar la figura de la arquitectura Android Appium paso a paso

  • El cliente de Appium se comunica con el servidor de Appium mediante el protocolo de conexión JSON y envía el comando en formato JSON al servidor.
  • El servidor de Appium luego establece una conexión con el cliente y reenvía la solicitud al controlador ICS UiAutomator. El servidor de Appium también envía un archivo bootstrap.jar al dispositivo Android. UiAutomator ordena que el cliente tome el comando y lo ejecute en el archivo bootstrap.jar dentro del entorno del dispositivo Android.
  • Una vez que se completa la operación anterior, el cliente envía los detalles del registro del comando ejecutado al servidor de Appium.

Lea también: Desarrollador Full-Stack vs Android: ¿Cuál debería elegir?

Conclusión

Appium es sin duda una de las plataformas más populares para probar aplicaciones móviles. Hasta ahora, ha aprendido acerca de la descripción general de la arquitectura , el flujo de trabajo y el funcionamiento de Appium en las plataformas iOS y Android.

Si está interesado en obtener más información sobre el desarrollo de software de pila completa, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.

Prepárate para una carrera del futuro

UPGRAD Y DIPLOMA PG DE IIIT-BANGALORE EN DESARROLLO DE SOFTWARE FULL STACK
Aplica ya