Última actualización 12 de mayo de 2020 — Continuous Testing Experto

 

Appium es una solución basada en servicios diseñada para simplificar el proceso de escalar las pruebas de aplicaciones a una amplia variedad de dispositivos y entornos, en un esfuerzo por mantener software seguro. Appium actúa como un servidor virtual que envía comandos a los marcos nativos del dispositivo para que las acciones de prueba y los scripts se manejen de forma autónoma y a escala.

Appium no solo coordina las pruebas en miles (o decenas de miles) de dispositivos reales o virtualizados, sino que también envía datos al repositorio deseado. ¡Lo más deseable es que Appium sea de código abierto! Esto significa que no solo es 100 % gratuito, sino que también puede personalizarse o integrarse para adaptarse al caso de uso deseado.

Digital.ai Continuous Testing aprovecha Appium, entre otras tecnologías, para probar aplicaciones rápidamente en una amplia gama de dispositivos. El marco de Appium es un componente clave para escalar las pruebas de aplicaciones móviles para que se realicen de forma autónoma y continua. Más sobre cómo Digital.ai permite a las empresas utilizar Appium se puede encontrar en Estudio Appium.

¿Por qué Appium se está volviendo popular para las pruebas de aplicaciones móviles y web?

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, a los creadores de productos digitales se les encargó determinar nuevas formas de probar su tecnología en una amplia gama de dispositivos.

Prueba manual fue el método principal en un momento en el pasado. Implica tomar las medidas reales necesarias para probar el rendimiento, descubrir errores y garantizar la seguridad, el cumplimiento y la gobernanza (SCaG). Una sesión de prueba manual consistiría en una persona sentada frente a una estación de trabajo, actuando como un usuario de software, usando su mouse y teclado para interactuar con el programa y probar varios aspectos de su rendimiento e integridad.

Los equipos de software pudieron ir más allá de las pruebas manuales lentas y engorrosas utilizando scripts de prueba. Al programar una aplicación de prueba para realizar una batería de acciones diseñadas para verificar la integridad de un producto, los equipos de desarrollo y control de calidad pudieron escalar sus pruebas más allá de lo que los evaluadores humanos son capaces de lograr.

Sin embargo, existe un límite para la escalabilidad, incluso con herramientas de prueba con secuencias de comandos. Los diferentes entornos de dispositivos presentan nuevas oportunidades para vulnerabilidades, errores y problemas no descubiertos. Además, cada dispositivo tiene su propio marco único que debe adaptarse a un programa de prueba. En el pasado, superar estas barreras significaba codificar un kit de desarrollo de software (SDK) único o compilar una versión única de las herramientas de prueba para cada dispositivo. Ahora, con Appium, el acceso a cada dispositivo se puede hacer de forma automática/autónoma y remota.

Ingrese a Appium: la herramienta de prueba de aplicaciones que cambia el juego

Appium es un marco de automatización de pruebas móviles de código abierto, multiplataforma y tecnología cruzada. Con Appium, los desarrolladores y probadores evitan el proceso de creación manual de herramientas de prueba para cada dispositivo. En su lugar, se puede crear un servidor Appium para transmitir las instrucciones directamente al dispositivo desde un script de prueba generalizado.

En los últimos años, Appium ha hecho olas en el pruebas de automatización móvil segmento. La herramienta se hizo popular rápidamente porque es independiente de la plataforma, lo que significa que puede usar el mismo script de prueba para probar las aplicaciones de iOS y Android con cambios mínimos. Appium admite 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, PHP, es otra gran ventaja. Además, Appium le permite probar dispositivos, emuladores y simuladores reales.

El sólido rendimiento de Appium se puede atribuir al protocolo JSON Wire que los clientes de Appium utilizan para interactuar con dispositivos móviles a través de Appium Server. Si bien hay una curva de aprendizaje, vale la pena el tiempo que lleva aprender, ya que hace que las pruebas de automatización sean fáciles y efectivas una vez que las tenga en sus manos.

Inicialmente desarrollado como una herramienta CLI, Appium ahora se ha transformado en una aplicación de escritorio GUI potente y vibrante que se puede ejecutar en distribuciones de Windows, MAC y Linux.

arquitectura de apioArquitectura del servidor Appium

Appium utiliza una arquitectura cliente-servidor. Estos son los componentes clave de la arquitectura Appium:

1) Servidor Appium: Appium Server es el componente central de la arquitectura de Appium. Está escrito en Node.js y se ejecuta en la máquina o en la nube. Appium Server recibe solicitudes de las bibliotecas de clientes de Appium a través del protocolo JSON Wire e invoca el controlador móvil (controlador de Android/controlador de iOS) para conectarse a los marcos de automatización de pruebas nativos correspondientes para ejecutar operaciones de cliente en los dispositivos. Los resultados de las pruebas se reciben y se envían a los clientes. Appium Server tiene la capacidad de crear múltiples sesiones para ejecutar pruebas simultáneamente en múltiples dispositivos.

2) Bibliotecas de cliente de Appium: Los clientes de Appium solicitan al servidor que inicie una sesión de automatización de prueba mediante el comando createSession() a través del protocolo JSON Wire, ejecute pruebas en varios dispositivos móviles y reciba el resto de los resultados del servidor Appium. Las bibliotecas de cliente de Appium abarcan varios lenguajes, como PHP, Java, Ruby, JavaScript, C#, Python.

3) Protocolo de cable JSON: En la arquitectura cliente-servidor de Appium, los clientes de Appium se comunican con Appium Server a través del protocolo JSON Wire desarrollado por el equipo de desarrolladores de WebDriver. Permite a los desarrolladores acceder a puntos finales estándar y predefinidos a través de una API RESTful. Con el protocolo JSON Wire, puede probar sitios web y aplicaciones a través de un navegador móvil mientras puede 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 de la tecnología. Para administrar de manera efectiva diferentes plataformas, Appium usa varios controladores y convierte la API en sesiones de automatización para las plataformas correspondientes.

  1. UIAutomator2: El controlador Appium predeterminado para las pruebas de dispositivos Android
  2. UIAutomator1: Controlador Appium para versiones anteriores de Android.
  3. Prueba XCUIT: Controlador Appium para pruebas de dispositivos iOS
  4. Controlador WinApp: Controlador Appium para pruebas de dispositivos Windows
  5. Café exprés: Nuevo controlador Appium para pruebas de dispositivos Android

5) Marcos de prueba automatizados: Appium utiliza los marcos de prueba automatizados nativos para ejecutar operaciones de cliente en los dispositivos de prueba. Se conecta con bootstrap.js que actúa como un servidor TCP y ejecuta comandos de prueba en los dispositivos.

  1. Marco UiAutomator: Para pruebas de dispositivos Android
  2. Marco de prueba XCUIT: Para probar aplicaciones de iOS

¿Cómo funciona Apio?

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 comenzar una sesión de prueba de automatización, la máquina cliente envía una solicitud al servidor Appium a través del protocolo JSON Wire. El código de prueba se puede escribir en varios lenguajes de programación, como Java, Ruby, Python, PHP, C# y JavaScript. Luego, Appium Server crea una nueva sesión de automatización de prueba e invoca el controlador iOS/Android adecuado. Cuando Appium Server se conecta con los marcos de prueba nativos correspondientes, también comenzará a interactuar 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 característica enormemente ventajosa de Appium es que permite a los desarrolladores usar el mismo código de prueba para probar dispositivos iOS y Android. Sin embargo, el desafío aquí es diferenciar entre las solicitudes de automatización de pruebas de dispositivos iOS y Android. Appium hace esto mirando la opción de capacidades deseada. Cuando crea una sesión de solicitud, debe mencionar los pares clave-valor, como nombre del dispositivo, nombre de la plataforma, paquete de la aplicación, actividad de la aplicación, etc. Según estos valores, Appium Server enruta de manera eficiente las solicitudes del cliente a los marcos de prueba correspondientes.

Cómo funciona Appium en cada dispositivo

Appium en dispositivos Android

  1. La máquina cliente envía una solicitud a Appium Server a través del protocolo JSON Wire para crear una nueva sesión de automatización de pruebas.
  2. Se crea una sesión de automatización de prueba en el servidor. El servidor también comprueba las capacidades deseadas. Para las pruebas de la plataforma Android, el servidor se comunica con el marco UiAutomator2, que es un marco de automatización de pruebas nativo en Android.
  3. UiAutomator2 se comunicará con bootstrap.jar que se ejecuta en el dispositivo, actuando como un servidor TCP. Funciona en emuladores, simuladores y dispositivos reales.
  4. Bootstrap.jar recibe los comandos y ejecuta las pruebas en dispositivos Android. Pasa los detalles del registro de prueba al UiAutomator2 que, a su vez, envía esta información al servidor Appium. Bootstrap.jar luego pasa esa información al cliente.

Appium en dispositivos iOS

  1. La máquina cliente envía una solicitud a Appium Server a través del protocolo JSON Wire para crear una nueva sesión de automatización de pruebas.
  2. Se crea una sesión de automatización de pruebas en el servidor. El servidor también comprueba las capacidades deseadas. Para las pruebas de la plataforma iOS, el servidor se comunica con el marco XCUITest, que es un marco de automatización de pruebas nativo en iOS que viene con Apple XCode.
  3. El marco XCUITest se comunicará con bootstrap.js que se ejecuta en el dispositivo que actúa como un servidor TCP. Funciona en emuladores, simuladores y dispositivos reales.
  4. Bootstrap.js recibe los comandos y ejecuta las pruebas en dispositivos iOS. Pasa los detalles del registro de prueba a XCUITest, que a su vez envía esta información al servidor Appium. Esta información se comunica luego con el cliente.

¿Qué es el protocolo JSON Wire y cómo funciona con Appium?

JSON Wire Protocol es un estándar popular que facilita la comunicación entre las bibliotecas del cliente y el servidor en un sistema heterogéneo. Al ser una herramienta independiente de la plataforma y del idioma, Appium hace uso de esta función del protocolo JSON Wire.

JSON es una forma abreviada de notación de objetos de JavaScript, en la que se representan estructuras de datos complejas. El protocolo de cable es un mecanismo de transmisión de datos punto a punto.

En la arquitectura de Appium, la comunicación entre Appium Server y las bibliotecas del cliente se facilita mediante el WebDriver que utiliza el protocolo JSON Wire sobre una solicitud TTP REST con entradas JSON. Este arreglo utiliza el método de serialización y deserialización para convertir datos de objetos en formato JSON y viceversa.

Al ser una herramienta multiplataforma, el servidor no tiene que comprender los lenguajes de programación de las bibliotecas del cliente, sino que solo tiene que identificar el protocolo para crear y administrar sesiones de automatización.

La arquitectura del protocolo JSON

  1. Extremo local: es el lado del cliente del protocolo, normalmente bibliotecas de clientes escritas en un lenguaje de programación específico.
  2. Extremo remoto: es el lado del servidor del protocolo
  3. Extremo intermediario: Sistemas proxy que pueden actuar tanto como extremo remoto como extremo local.
  4. Nodo de punto final: es el extremo remoto final de la estructura del nodo.

El extremo remoto es el servidor que lee las solicitudes de los clientes finales locales 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 de punto final o usar el comando Buscar elemento para recuperar elementos específicos.

Instalación de Appium
Appium está disponible en dos versiones:

  1. Servidor Appium basado en CLI
  2. Appium Desktop basado en GUI (agrega una capa GUI al servidor Appium y también ofrece Appium Inspector)

Instalación de Appium Server basada en CLI
Appium ofrece una aplicación de escritorio GUI vibrante que le permite administrar fácilmente las operaciones de automatización de pruebas. Sin embargo, cuando integra las pruebas en sus canalizaciones de CI, debe iniciar Appium Server utilizando los scripts. Como tal, debe instalar Appium Server como primer paso.

Instalación de Appium

Appium está disponible en dos versiones.

  1. Servidor Appium basado en CLI
  2. Appium Desktop basado en GUI (agrega una capa GUI al servidor Appium y también ofrece Appium Inspector)

Instalación de Appium Server basada en CLI

Appium ofrece una aplicación de escritorio GUI vibrante que le permite administrar fácilmente las operaciones de automatización de pruebas. Sin embargo, cuando integra las pruebas en sus canalizaciones de CI, debe iniciar Appium Server utilizando los scripts. Como tal, debe instalar Appium Server

Paso 1: Instala Node.js

Como Appium está escrito en Node.js, primero debe instalar Node.js para usar Appium. Visite el sitio web de Node.js para descargar el software:

https://nodejs.org/en/download/current/

Instalar Node.js

Una vez completada la descarga, instale el paquete.

Instalar el paquete Node.js

Acepte el acuerdo de licencia y continúe con la siguiente pantalla.

Acepta el acuerdo de licencia

Elija la ruta de Node.js que normalmente es C:Program Filesnodejs

Elija la ruta de Node.js

La siguiente pantalla muestra los componentes que se están instalando. Junto con Node.js, necesita un administrador de paquetes. Npm es el administrador de paquetes recomendado para Node.js. Por lo tanto, instale también las herramientas de NPM.

instalar las herramientas 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 puede instalarlos manualmente desde GitHub cuando sea necesario.

instalación de las herramientas necesarias para compilar módulos nativos

Haga clic en siguiente y complete la instalación.

completar la instalación

Después de la instalación, verifique si la variable ambiental 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.

Haga clic derecho en Inicio->Sistema->Avanzado->Variables de entorno

la variable de usuario muestra la ruta npm

Paso 2: instale Appium desde el símbolo del sistema

Abra el símbolo del sistema como administrador y escriba el siguiente comando:

instalación npm -g Appium

Instalar Appium desde el símbolo del sistema

El administrador de paquetes npm iniciará el procedimiento de instalación.

el administrador de paquetes npm iniciará el procedimiento de instalación

Después de una instalación exitosa, puede comenzar a usar Appium.

Para abrir Appium desde el símbolo del sistema, escriba Appium seguido de la dirección IP y el número de puerto del servidor.

Apio -a 127.0.0.1 -p 4723

Después de una instalación exitosa, puede comenzar a usar Appium

Ahora, Appium se está ejecutando y 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 Appium Desktop basada en GUI

Descargar e instalar Appium Desktop

Para descargar e instalar el escritorio de Appium, visite el sitio web de Appium:

https://Appium.io/

Instalación de Appium Desktop basada en GUI

Después de una instalación exitosa, abra el escritorio de Appium.

Abra el escritorio de Appium

En la pantalla inicial, Appium le pedirá que ingrese la dirección IP del host y el número de puerto del servidor.

Como Appium es solo un servidor HTTP, no hace nada por sí solo. Necesita las bibliotecas cliente para solicitar y realizar operaciones en dispositivos finales. Por lo tanto, es importante configurar el puerto del servidor cuando inicie Appium. El puerto del servidor es a lo que el cliente se conecta y se comunica con Appium. El puerto de servidor predeterminado es 4723. Cuando se conecta a las máquinas cliente, debe especificar este puerto de servidor.

Para cambiar el puerto del servidor, haga clic en la pestaña Avanzado y verá una pantalla con los ajustes de configuración del servidor. Ingrese los detalles e inicie el servidor.

Iniciar servidor

Si desea guardar esta configuración para la próxima vez, guárdela como preestablecida y elija la configuración de la pestaña preestablecida cuando abra Appium la próxima vez.

Configuración del servidor Appium

Ahora Appium Desktop está listo para usar.

Aprovechando Appium para realizar continuous testing

Appium proporciona enormes ventajas en el sentido de que Appium Server se puede utilizar para transmitir solicitudes de prueba y recuperar datos de prueba de forma autónoma. Esta capacidad encaja perfectamente con continuous testing marcos.

In continuous testing, la aplicación se prueba periódicamente durante todo el ciclo de vida del producto. Eso incluye pruebas individuales release construye antes de la integración y también después de ladeploymento Al ejecutar pruebas de forma continua, los equipos de productos automatizan muchas de las tareas involucradas en la programación y creación de pruebas de forma manual, mientras que, al mismo tiempo, los productos se prueban con mayor frecuencia e intensidad para detectar problemas, errores o vulnerabilidades.

La plataforma SeeTest, parte de Digital.ai Continuous Testing, es una solución de extremo a extremo utilizada para probar dispositivos y navegadores en la nube o en una red remota. SeeTest es totalmente compatible con herramientas como Appium, Selenium, XCUITest y más.

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 más. 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 e inicie una nueva sesión

Una vez que se inicie Appium Desktop, abra una 'Nueva sesión de Windows...'

Nuevas ventanas de sesión

Paso 2: Obtener clave de acceso de SeeTest Cloud

Navegue a la interfaz de usuario de SeeTest Cloud y haga clic en el icono que representa al usuario. Luego haga clic en Obtener clave de acceso como se muestra a continuación.

Obtener clave de acceso de SeeTest Cloud

Copie la clave de acceso al portapapeles desde el cuadro de diálogo clave de acceso abierto.

Nota: En este caso, nosotros usamos Oferta pública de SeeTest Cloud en las preferencias de conexión.

Ver la oferta pública de Test Cloud en las preferencias de conexión.

Paso 3: Especifique la configuración de conexión de SeeTest Cloud y las capacidades deseadas. 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 Expertist de los 'Proveedores de la nube'

Seleccione Expertist de los 'Proveedores de la nube'

Proporcione la URL de la nube y la clave de acceso.

Establezca la capacidad de "platformName" en iOS o Android, según el dispositivo que le gustaría usar.

Establezca la capacidad "platformName" en iOS o Android, según el dispositivo que desee utilizar.

Haga clic en Iniciar sesión para conectarse a SeeTest Cloud. Este paso se conectará a SeeTest Cloud.

Una sesión continua de Appium Desktop en SeeTest Cloud también está disponible en la interfaz de usuario de SeeTest Cloud. Esto proporciona al usuario un mejor control sobre el dispositivo.

Haga clic en Iniciar sesión para conectarse a SeeTest Cloud

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 en curso de Appium Desktop.

Esta es una característica muy conveniente porque un usuario de prueba puede aprovechar las poderosas características de SeeTest y Appium en la misma sesión. El beneficio clave 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 se puede utilizar para inspeccionar cualquier elemento de la sesión.

SeeTest y Appium en la misma sesión

Por supuesto, si desea verlo en tiempo real, lo tenemos cubierto con este excelente video tutorial.

https://www.youtube.com/watch?v=GjX56G0rtEw&feature=emb_logo

Appium es una solución conveniente para la automatización continuous testing a escala

Gracias a todas sus cualidades ventajosas y su fácil integración con otras suites de prueba, la popularidad de Appium no muestra signos de disminuir con el paso del tiempo. Nuestros equipos siempre tienen eso en cuenta a medida que desarrollamos y release las últimas versiones de SeeTest.

En cuanto a la información en la publicación del blog, le recomendamos que marque esta página para que siempre tenga disponible la información del tutorial. Y, naturalmente, le recomendamos que, si aún no ha utilizado nuestra integración de Appium, realice una descarga y lo compruebe por sí mismo.

¿Estás listo para escalar tu empresa?

Explorar

¿Qué hay de nuevo en el mundo de Digital.ai

Abril 22, 2024

El sesgo en la máquina: sesgos en los datos de entrenamiento y su impacto en el código generado por los asistentes de código de IA

Explore los sesgos en los datos de entrenamiento de IA que afectan la generación de código y aprenda estrategias para mitigarlos para lograr un desarrollo de IA y una innovación de software más justos.

Más Información
Febrero 22, 2024

Cómo el futurismo está dando forma a las pruebas en la nube: un pronóstico

Libere el futuro de las pruebas en la nube: enfoques estratégicos para aprovechar la tecnología de manera efectiva, mejorar la calidad del software y garantizar el éxito empresarial.

Más Información
4 de diciembre de 2023

El impulso hacia la calidad: pruebas continuas de software automatizadas para la industria automotriz

Desde la creación de pruebas impulsadas por IA hasta sistemas de autorreparación, descubra cómo continuous testing y los desarrollos innovadores están dando forma al futuro de la conectividad, safey vehículos confiables.

Más Información