Publicado: agosto 1, 2024
Pruebas móviles con Appium
Introducción a las pruebas móviles con Appium
Appium es una solución basada en servicios diseñada para simplificar el proceso de Pruebas de escalado de aplicaciones a una amplia variedad de dispositivos y entornos, en un esfuerzo por mantener software seguroAppium actúa como un servidor virtual que envía comandos a los frameworks nativos del dispositivo para probar acciones y scripts que se manejarán de forma autónoma y a escala.
Appium no solo coordina pruebas en miles (o decenas de miles) de dispositivos reales o virtualizados, sino que también envía los datos al repositorio deseado. Lo mejor de todo es que Appium es de código abierto. Esto significa que no solo es completamente gratuito, sino que también se puede personalizar o integrar para adaptarse a las necesidades específicas.
Digital.ai Continuous Testing Utiliza Appium, entre otras tecnologías, para probar rápidamente aplicaciones en una amplia gama de dispositivos. El framework de Appium es un componente clave para la escalabilidad. prueba de aplicaciones móviles que se realice de forma autónoma y continua. Más información sobre cómo Digital.ai permite a las empresas usar Appium y se puede encontrar en Appium Studio.
Descripción general de Appium
Appium es un framework de automatización de pruebas móviles multiplataforma y multitecnología de código abierto. Con Appium, los desarrolladores y testers evitan la creación manual de herramientas de prueba para cada dispositivo. En su lugar, se puede crear un servidor Appium que transmita las instrucciones directamente al dispositivo desde un script de prueba generalizado.
En los últimos años, Appium ha causado sensación en el sector Pruebas de automatización móvil El segmento. La herramienta se popularizó rápidamente porque es multiplataforma, lo que significa que puedes usar el mismo script de prueba para probar aplicaciones iOS y Android con cambios mínimos. Appium es compatible. pruebas automatizadas de aplicaciones web y aplicaciones nativas, así como aplicaciones híbridas.
El hecho de que Appium admita múltiples lenguajes de programación para escribir código de prueba —como Python, Ruby, Java, JavaScript y PHP— es otra gran ventaja. Además, Appium permite probar dispositivos reales, emuladores y simuladores.
El sólido rendimiento de Appium se debe al protocolo JSON Wire, que los clientes de Appium utilizan para interactuar con los dispositivos móviles a través del servidor de Appium. Si bien requiere un tiempo de aprendizaje, vale la pena invertirlo, ya que facilita y optimiza las pruebas de automatización una vez que se domina.
Appium, inicialmente desarrollada como una herramienta de línea de comandos, se ha transformado en una potente y dinámica aplicación de escritorio con interfaz gráfica de usuario que puede ejecutarse en distribuciones de Windows, MAC y Linux.
Importancia de las pruebas móviles en el desarrollo de aplicaciones
Pruebas en los días previos a Appium
A medida que el software digital comenzó a extenderse a casi todos los hogares y bolsillos del mundo, los creadores de productos digitales se vieron en la necesidad de determinar nuevas formas de probar su tecnología en una amplia gama de dispositivos.
Prueba manual Fue el método principal en algún momento del pasado. Consiste en llevar a cabo las acciones necesarias para probar el rendimiento, detectar errores y garantizar la seguridad, el cumplimiento y la gobernanza (SCaG). Una sesión de pruebas manuales consistiría en que una persona, sentada frente a una estación de trabajo, simulara ser un usuario del software, utilizando el ratón y el teclado para interactuar con el programa y probar diversos aspectos de su rendimiento e integridad.
Los equipos de software pudieron superar las lentas y engorrosas pruebas manuales gracias al uso de scripts de prueba. La programación de aplicaciones de prueba para realizar una serie de acciones diseñadas para verificar la integridad de un producto permitió a los equipos de desarrollo y control de calidad ampliar sus pruebas más allá de las capacidades de los evaluadores humanos.
Sin embargo, la escalabilidad tiene sus límites, incluso con herramientas de prueba automatizadas. Los distintos entornos de dispositivos presentan nuevas oportunidades para vulnerabilidades, errores y problemas no descubiertos. Además, cada dispositivo tiene su propio marco de trabajo que un programa de pruebas debe tener en cuenta. Anteriormente, superar estas barreras implicaba programar un kit de desarrollo de software (SDK) específico o compilar una versión única de las herramientas de prueba para cada dispositivo. Ahora, con Appium, el acceso a cada dispositivo se puede realizar de forma automática, autónoma y remota.
¿Qué es el protocolo JSON Wire y cómo funciona con Appium?
El protocolo JSON Wire es un estándar popular que facilita la comunicación entre las bibliotecas cliente y el servidor en un sistema heterogéneo. Al ser una herramienta independiente de la plataforma y del lenguaje, Appium utiliza esta característica del protocolo JSON Wire.
JSON es la abreviatura de JavaScript Object Notation, que permite representar estructuras de datos complejas. El protocolo de red es un mecanismo de transmisión de datos punto a punto.
En la arquitectura de Appium, la comunicación entre el servidor de Appium y las bibliotecas cliente se facilita mediante WebDriver, que utiliza el protocolo JSON Wire a través de una solicitud HTTP REST con entradas JSON. Esta configuración emplea el método de serialización y deserialización para convertir datos de objetos a formato JSON, y viceversa.
Al ser una herramienta multiplataforma, el servidor no necesita comprender los lenguajes de programación de las bibliotecas cliente, sino que simplemente debe identificar el protocolo para crear y gestionar sesiones de automatización.
Arquitectura del protocolo JSON
- Extremo local: Es el lado del cliente del protocolo, normalmente bibliotecas cliente escritas en un lenguaje de programación específico.
- Extremo remoto: Es el lado del servidor del protocolo.
- Extremo intermedio: Sistemas proxy que pueden actuar como extremo remoto, así como extremo local.
- Nodo final: Es el extremo remoto final de la estructura de nodos.
El extremo remoto es el servidor que lee las solicitudes de los clientes del extremo local y escribe las respuestas a través de un socket TCP.
Por ejemplo, puede usar el comando Nueva sesión para crear una nueva sesión de WebDriver para realizar operaciones de prueba en el nodo del punto final o usar el comando Buscar elemento para recuperar elementos específicos.
Instalación de Appium
Appium está disponible en dos versiones:
- Servidor Appium basado en CLI
- Appium Desktop con interfaz gráfica de usuario (añade una capa de interfaz gráfica de usuario al servidor Appium y ofrece Appium Inspector).
Instalación del servidor Appium basada en CLI
Appium ofrece una aplicación de escritorio con una interfaz gráfica de usuario dinámica que le permite gestionar fácilmente las operaciones de automatización de pruebas. Sin embargo, cuando integra las pruebas en su CI Para usar pipelines, necesitas iniciar el servidor Appium mediante scripts. Por lo tanto, debes instalar el servidor Appium como primer paso.
Instalación de Appium
Appium está disponible en dos versiones.
- Servidor Appium basado en CLI
- Appium Desktop con interfaz gráfica de usuario (añade una capa de interfaz gráfica de usuario al servidor Appium y ofrece Appium Inspector).
Instalación del servidor Appium basada en CLI
Appium ofrece una aplicación de escritorio con una interfaz gráfica de usuario (GUI) dinámica que permite gestionar fácilmente las operaciones de automatización de pruebas. Sin embargo, al integrar las pruebas en las canalizaciones de integración continua (CI), es necesario iniciar el servidor de Appium mediante scripts. Por lo tanto, se debe instalar el servidor de Appium.
Paso 1: Instala Node.js
Como Appium está escrito en Node.js, primero debes instalar Node.js para poder usarlo. Visita el sitio web de Node.js para descargar el software:
https://nodejs.org/en/download/current/
Una vez finalizada la descarga, instale el paquete.

Acepte el acuerdo de licencia y pase a la siguiente pantalla.
Elige la ruta de Node.js, que normalmente es C:\Archivos de programa\nodejs
La siguiente pantalla muestra los componentes que se están instalando. Además de Node.js, necesitas un gestor de paquetes. Npm es el gestor de paquetes recomendado para Node.js. Por lo tanto, instala también las herramientas de Npm.

La siguiente pantalla le pedirá que permita la instalación de las herramientas necesarias para compilar módulos nativos. Puede seleccionar esa opción o instalarlas manualmente desde GitHub cuando sea necesario.

Haz clic en Siguiente y completa la instalación.

Tras la instalación, compruebe si la variable de entorno contiene la ruta de npm y nodejs.
La ruta del sistema muestra la ruta de Node.js y la variable de usuario muestra la ruta de npm.
Haz clic derecho en Inicio->Sistema->Avanzado->Variables de entorno

Paso 2: Instalar Appium desde el símbolo del sistema
Abre el símbolo del sistema como administrador y escribe el siguiente comando:
npm install -g Appium

El gestor de paquetes npm iniciará el procedimiento de instalación.
Tras una instalación exitosa, puede comenzar a usar Appium.
Para abrir Appium desde la línea de comandos, escriba Appium seguido de la dirección IP y el número de puerto del servidor.
Appium -a 127.0.0.1 -p 4723
Ahora Appium está en ejecución y el REST HTTP está escuchando en la dirección IP (en el ejemplo anterior, localhost 127.0.0.1 y el puerto del servidor 4723).
Instalación de escritorio de Appium basada en GUI
Descarga e instala Appium Desktop
Para descargar e instalar la aplicación de escritorio de Appium, visite la Sitio web de Appium.
Tras la instalación correcta, abra el escritorio de Appium.

En la pantalla de inicio, Appium le solicitará que introduzca la dirección IP del host y el número de puerto del servidor.
Como Appium es solo un servidor HTTP, no realiza ninguna función por sí solo. Necesitas las bibliotecas cliente para solicitar y ejecutar operaciones en los dispositivos finales. Por lo tanto, es importante configurar el puerto del servidor al iniciar Appium. El puerto del servidor es al que el cliente se conecta y se comunica con Appium. El puerto del servidor predeterminado es el 4723. Al conectarte a las máquinas cliente, debes especificar este puerto del servidor.
Para cambiar el puerto del servidor, haga clic en la pestaña Avanzado y verá una pantalla con las opciones de configuración del servidor. Introduzca los datos e inicie el servidor.
Si quieres guardar esta configuración para la próxima vez, guárdala como preajuste y elige la pestaña de configuración predefinida cuando abras Appium la próxima vez.
Appium Desktop ya está listo para usar.
Comprender la arquitectura de Appium
Appium utiliza una arquitectura cliente-servidor. Estos son los componentes clave de la arquitectura de Appium:
1) Servidor Appium: El servidor de Appium es el componente principal de la arquitectura de Appium. Está escrito en Node.js y se ejecuta localmente o en la nube. El servidor de Appium recibe solicitudes de las bibliotecas cliente de Appium mediante el protocolo JSON Wire e invoca el controlador móvil (controlador de Android/controlador de iOS) para conectarse a los frameworks de automatización de pruebas nativos correspondientes y ejecutar operaciones cliente en los dispositivos. Los resultados de las pruebas se reciben y se envían a los clientes. El servidor de Appium puede crear múltiples sesiones para ejecutar pruebas en varios dispositivos.
2) Bibliotecas cliente de Appium: Los clientes de Appium solicitan al servidor que inicie una sesión de automatización de pruebas mediante el comando `createSession()` a través del protocolo JSON Wire, ejecutan pruebas en múltiples dispositivos móviles y reciben los resultados restantes del servidor de Appium. Las bibliotecas cliente de Appium son compatibles con diversos lenguajes, como PHP, Java, Ruby, JavaScript, C# y Python.
3) Protocolo JSON Wire: En la arquitectura cliente-servidor de Appium, los clientes se comunican con el servidor mediante el protocolo JSON Wire, desarrollado por los equipos de desarrollo de WebDriver. Este protocolo permite a los desarrolladores acceder a puntos de conexión estándar y predefinidos a través de una API RESTful. Con JSON Wire, es posible probar sitios web y aplicaciones desde un navegador móvil, pudiendo instalar o desinstalar aplicaciones en el dispositivo durante la sesión de automatización de pruebas.
4) Controlador Appium: Appium es independiente de la plataforma y la tecnología. Para gestionar eficazmente diferentes plataformas, Appium utiliza múltiples controladores y convierte la API en sesiones de automatización para las plataformas correspondientes.
- UiAutomator2: El controlador Appium predeterminado para pruebas de dispositivos Android
- UiAutomator1: Controlador Appium para versiones antiguas de Android.
- Prueba XCUIT: Controlador Appium para pruebas de dispositivos iOS
- Controlador de aplicaciones de Windows: Controlador Appium para pruebas de dispositivos Windows
- Café exprés: Nuevo controlador Appium para pruebas en dispositivos Android
5) Marcos de pruebas automatizadas: Appium utiliza los frameworks nativos de pruebas automatizadas para ejecutar operaciones de cliente en los dispositivos de prueba. Se conecta con bootstrap.js, que actúa como servidor TCP, y ejecuta comandos de prueba en los dispositivos.
- Marco de trabajo UiAutomator: Para pruebas en dispositivos Android
- Marco de pruebas XCUITest: Para probar aplicaciones de iOS
Cómo funciona Appium
Appium Server está escrito en Node.js y utiliza la arquitectura cliente-servidor, en la que las máquinas cliente se comunican con el servidor a través de un protocolo.
Para iniciar una sesión de pruebas automatizadas, el equipo cliente envía una solicitud al servidor Appium mediante el protocolo JSON Wire. El código de prueba puede escribirse en diversos lenguajes de programación, como Java, Ruby, Python, PHP, C# y JavaScript. El servidor Appium crea entonces una nueva sesión de automatización de pruebas e invoca el controlador iOS/Android correspondiente. Al conectarse con los frameworks de pruebas nativos, el servidor Appium también interactúa con el servicio de arranque (bootstrap.jar/bootstrap.js) que se ejecuta en los dispositivos móviles para realizar operaciones, tal como lo haría un usuario.
Una de las grandes ventajas de Appium es que permite a los desarrolladores usar el mismo código de prueba para probar dispositivos iOS y Android. Sin embargo, el reto consiste en diferenciar entre las solicitudes de automatización de pruebas de dispositivos iOS y Android. Appium lo consigue mediante la opción de capacidades deseadas. Al crear una sesión de solicitud, es necesario especificar pares clave-valor como deviceName, platformName, appPackage, appActivity, etc. Con base en estos valores, el servidor de Appium enruta eficientemente las solicitudes del cliente a los frameworks de prueba correspondientes.
Plataformas compatibles
Android
- La máquina cliente envía una solicitud al servidor Appium a través del protocolo JSON Wire para crear una nueva sesión de automatización de pruebas.
- Se crea una sesión de automatización de pruebas en el servidor. El servidor también verifica las funcionalidades requeridas. Para las pruebas en la plataforma Android, el servidor se conecta con el framework UiAutomator2, un framework nativo de automatización de pruebas en Android.
- UiAutomator2 se comunicará con el archivo bootstrap.jar que se ejecuta en el dispositivo, actuando como un servidor TCP. Funciona en emuladores, simuladores y dispositivos reales.
- El archivo JAR recibe los comandos y ejecuta las pruebas en dispositivos Android. Envía los detalles del registro de pruebas a UiAutomator2, que a su vez envía esta información al servidor de Appium. Bootstrap.jar, por su parte, transmite dicha información al cliente.
iOS
- La máquina cliente envía una solicitud al servidor Appium a través del protocolo JSON Wire para crear una nueva sesión de automatización de pruebas.
- Se crea una sesión de automatización de pruebas en el servidor. El servidor también verifica las capacidades requeridas. Para las pruebas en la plataforma iOS, el servidor se conecta al framework XCUITest, un framework de automatización de pruebas nativo de iOS que viene incluido con Apple Xcode.
- El framework XCUITest se comunicará con bootstrap.js, que se ejecuta en el dispositivo y actúa como servidor TCP. Funciona en emuladores, simuladores y dispositivos reales.
- El script recibe los comandos y ejecuta las pruebas en dispositivos iOS. Envía los detalles del registro de pruebas a XCUITest, que a su vez envía esta información al servidor Appium. Esta información se comunica entonces al cliente.
Aprovechar Appium para realizar Continuous Testing
Appium ofrece grandes ventajas, ya que Appium Server puede utilizarse para reenviar solicitudes de prueba y recuperar datos de prueba de forma autónoma. Esta capacidad se integra perfectamente con los marcos de pruebas continuas.
En las pruebas continuas, la aplicación se prueba periódicamente durante todo su ciclo de vida. Esto incluye probar las distintas versiones antes de la integración y también después de su implementación. Al ejecutar pruebas de forma continua, los equipos de producto automatizan muchas de las tareas que implica la programación y la creación manual de pruebas, a la vez que los productos se prueban con mayor frecuencia y profundidad para detectar cualquier problema, error o vulnerabilidad.
La plataforma SeeTest, parte de Digital.ai Continuous TestingSeeTest es una solución integral que permite probar dispositivos y navegadores en la nube o en una red remota. Es totalmente compatible con herramientas como Appium, Selenium, XCUITest y otras.
La siguiente sección proporciona un procedimiento paso a paso para conectar SeeTest Cloud con Appium Desktop para Windows:
Conexión de Appium Desktop a la plataforma SeeTest
La plataforma SeeTest es una solución integral para probar dispositivos y navegadores en la nube o en una red remota. SeeTest es totalmente compatible con herramientas como Appium, Selenium, XCUITest y otras. La siguiente sección proporciona un procedimiento paso a paso para conectar SeeTest Cloud con Appium Desktop para Windows.
Usted necesitará una cuenta válida de SeeTest Cloud.
Paso 1: Inicie Appium Desktop y comience una nueva sesión.
Una vez que se inicie Appium Desktop, abra una 'Nueva ventana de sesión…'

Paso 2: Obtención de la clave de acceso desde SeeTest Cloud
Navegue a la interfaz de usuario de SeeTest Cloud y haga clic en el icono que representa al usuario. A continuación, haga clic en Obtener clave de acceso, como se muestra a continuación.
Copie la clave de acceso al portapapeles desde el cuadro de diálogo de clave de acceso abierta.
Nota: En este caso, utilizamos Oferta pública de SeeTest Cloud en las preferencias de conexión.
Paso 3: Especifique la configuración de conexión y las capacidades deseadas de SeeTest Cloud. El paso anterior abrirá un cuadro de diálogo para conectarse a un servidor Appium. En este paso, especificaremos las preferencias de conexión del servidor Appium de SeeTest Cloud.
Seleccione Experitest de la lista 'Proveedores de la nube'.
Proporcione la URL de la nube y la clave de acceso.
Configure la capacidad “platformName” como iOS o Android, según el dispositivo que desee utilizar.
Haz clic en Iniciar sesión para conectarte a SeeTest Cloud. Este paso te conectará a SeeTest Cloud.
También está disponible una sesión continua de Appium Desktop a SeeTest Cloud en la interfaz de usuario de SeeTest Cloud. Esto proporciona al usuario un mayor control sobre el dispositivo.
Navegue a la pestaña Ejecución en la interfaz de usuario de SeeTest Cloud y haga clic en depurar para usar la sesión de Appium Desktop en curso.
Esta es una función muy práctica, ya que un usuario de prueba puede aprovechar las potentes funciones de SeeTest y Appium en la misma sesión. La principal ventaja de esta sesión es que las operaciones de prueba realizadas con SeeTest son más rápidas y fáciles de usar. Appium Inspector permite inspeccionar cualquier elemento de la sesión.
Appium es una solución práctica para la automatización Continuous Testing a escala
Gracias a todas sus ventajas y a su fácil integración con otros entornos de pruebas, la popularidad de Appium no muestra signos de disminuir con el paso del tiempo. Nuestros equipos lo tienen siempre presente al desarrollar y lanzar las últimas versiones de SeeTest.
En cuanto a la información de la entrada del blog, le recomendamos que guarde esta página en sus marcadores para tener siempre a mano el tutorial. Y, por supuesto, si aún no ha utilizado nuestra integración con Appium, le recomendamos que la descargue y la pruebe usted mismo.
Si buscas poner en marcha tu automatización de Appium en cuestión de minutos, entonces quizás Appium Studio sea adecuado para ti. Haga clic aquí para más información.
También puede interesarle
Pero, ¿dónde vas a realizar todas esas pruebas?
Algo interesante está sucediendo ahora mismo en los equipos de control de calidad. IA…
Dispositivos virtuales frente a dispositivos reales: ¿Qué es lo que realmente importa en las pruebas móviles?
Si has dedicado tiempo a probar aplicaciones móviles, ya sabes…
Grabador de pruebas de iOS: una forma más rápida de convertir la validación en automatización.
Hemos escuchado sus comentarios. La grabadora de pruebas de iOS es…