Publicado: febrero 12, 2019
Comparación y combinación de controladores de automatización de pruebas web y móviles
Similitudes y diferencias entre los controladores de automatización de pruebas web y móviles, con especial atención a Appium y Selenium. Siga leyendo para descubrir más.
Existen diversas herramientas para la automatización de pruebas web y móviles. Varían en funcionalidad, plataformas compatibles y condiciones de uso. Para este análisis, nos centraremos únicamente en dos de ellas: Appium y Selenium.
Los desarrolladores y testers utilizan el framework Appium para la automatización de aplicaciones web, nativas e híbridas móviles. El framework Selenium se utiliza para la automatización de aplicaciones web. Además, Selenium está escrito en Java, mientras que Appium lo está en JavaScript. Aunque a primera vista parecen diferentes, tienen algo en común: Appium y Selenium utilizan el protocolo WebDriver para comunicarse con la plataforma de destino: Appium con el dispositivo móvil y Selenium con un navegador web. Generalmente, un script de Selenium WebDriver se puede ejecutar tanto en un navegador móvil como en un navegador de escritorio para realizar las mismas acciones en la misma aplicación web.
Diferencias entre controladores de automatización de pruebas web y móviles
Ante todo, la diferencia entre web y móvil prueba de automatización La funcionalidad, las plataformas compatibles y la configuración del entorno de pruebas para ejecutar las pruebas son características clave de Appium. Appium, en particular, actúa como un servidor HTTP para el cual existen varios clientes: Java, JavaScript, Python, C# y Ruby. De hecho, un cliente de Appium es una interfaz para las bibliotecas cliente de Selenium WebDriver. Además de Selenium, Appium utiliza un conjunto extendido de las API de WebDriver, específicas para la interacción con dispositivos móviles. Por ejemplo, Appium incluye comandos para admitir gestos multitáctiles y la orientación de la pantalla, gestionar datos de geolocalización, acceder a los registros del dispositivo y muchas otras funcionalidades.
El servidor de Appium permite a los usuarios de Appium controlar las funciones del dispositivo bajo prueba, como la instalación y desinstalación de una aplicación durante la sesión de prueba. Existen implementaciones de cliente similares para Selenium. Sin embargo, un servidor de Selenium solo es necesario para la ejecución de pruebas distribuidas si se requiere instalar una red Selenium Grid.
Para aclarar, Selenium es compatible con los principales navegadores que se ejecutan en los sistemas operativos de escritorio más comunes. Appium es compatible con una amplia variedad de dispositivos iOS y Android, para las versiones oficialmente compatibles de iOS y Android. Además, Appium permite automatizar aplicaciones de MS Windows. Por otro lado, existe una diferencia en el esfuerzo necesario para configurar la infraestructura de pruebas para Appium y Selenium. Para realizar pruebas con Appium, es necesario instalar NodeJS, instalar Appium, configurar el SDK y los controladores y frameworks específicos del dispositivo. En el caso de las pruebas con Selenium, la configuración del entorno para el desarrollo y la ejecución de pruebas es mucho más sencilla, a menos que se instale el servidor de Selenium para ejecutar pruebas en Selenium Grid. Los diagramas de las pilas de Appium y Selenium se muestran en las imágenes a continuación.
Ejemplo de uso de ambos frameworks para la automatización web móvil
La base común de ambos frameworks permite utilizarlos conjuntamente para la automatización de pruebas web y móviles, a pesar de las diferencias mencionadas. Cuando necesitamos probar una aplicación web en un navegador móvil, podemos usar tanto Appium como Selenium, que se complementarán en una misma prueba. A continuación, verá un enlace a una prueba sencilla en Git, por ejemplo, que abre una página del sitio web de Amazon.com en el navegador Chrome de Android en un dispositivo móvil.
Los códigos de prueba utilizan las bibliotecas Selenium y Appium para interactuar con el navegador en un dispositivo móvil. Los objetos cliente de Appium se emplean para inicializar el controlador del dispositivo, definir el navegador Chrome de Android y controlarlo. Selenium se utiliza para definir el objeto "Funcionalidad deseadas", que controla el controlador del dispositivo, el navegador móvil e interactúa con la aplicación web (en la prueba, se utiliza el sitio web de Amazon.com) mediante el objeto "By" de Selenium. El uso de estos objetos permite acceder a los elementos web del navegador móvil.
La prueba se ejecuta en La plataforma SeeTest: plataforma basada en la nube, ofreciendo una gran cantidad de navegadores y dispositivos móviles para el desarrollo y la automatización de pruebas web y móviles. A modo de comparación, existe la prueba que abre nube.seetest.io La página web se abre en el navegador Google Chrome en una plataforma Mac. El programa localiza algunos enlaces y hace clic en ellos. En este caso, solo se utilizan objetos Selenium, que controlan el navegador remoto en la plataforma SeeTest y ejecutan las acciones especificadas en la prueba. Puedes consultar el código de la prueba en el siguiente enlace.
La segunda prueba también se ejecuta en la plataforma SeeTest y está lista para su ejecución. Ambas pruebas pueden ser descargar, compilado y ejecutado. Utilice el comando 'mvn clean install' para ello. Como ambas pruebas deben ejecutarse en la plataforma SeeTest, no olvide agregar la clave de acceso de su cuenta SeeTest a las variables del sistema antes de iniciar las pruebas.
El primer ejemplo mostrado arriba ilustra las pruebas con Appium y Selenium, y es un ejemplo de automatización de pruebas web y móviles. Este caso se presenta cuando se requiere que una aplicación web se ejecute tanto en navegadores de escritorio como en dispositivos móviles, lo cual es frecuente hoy en día.
Un ejemplo del uso de Appium y Selenium para la automatización de aplicaciones móviles nativas.
Además de la necesidad de ser compatibles con diversos navegadores en múltiples plataformas móviles y de escritorio, las aplicaciones modernas pueden tener varios tipos de cliente: web, de escritorio y móvil, que a su vez pueden ejecutarse en diversas plataformas de hardware bajo distintos sistemas operativos. Para un ingeniero de control de calidad, esto implica, sobre todo, la necesidad de realizar pruebas en todas las combinaciones posibles de hardware, sistema operativo y navegador. Por ejemplo, un caso de uso posible, cuando se utilizan dos clientes diferentes, es aquel en el que un usuario del cliente móvil realiza una acción y otro usuario del cliente web recibe el resultado de dicha acción, o viceversa.
Un ejemplo de este tipo de caso es una publicación en una red social que debe ser revisada por diferentes clientes. Otro ejemplo es un chat, donde un usuario desde un dispositivo móvil envía un mensaje y un usuario desde un navegador web lo recibe, o viceversa. Desde la perspectiva del caso de prueba, este deberá imitar la interacción entre los dos tipos de clientes: móvil y web. Por lo tanto, en una misma prueba se utilizarán tanto Appium como Selenium, y este tipo de prueba combina ambas metodologías. En esta prueba, los objetos de Appium se utilizan para gestionar el dispositivo móvil, mientras que los objetos de Selenium se utilizan para gestionar e interactuar con el navegador en la plataforma de escritorio. También se ejecutará una prueba en el servicio en la nube SeeTest.
En cuanto a las implementaciones, las pruebas para estos clientes se pueden escribir en módulos separados y ejecutar en paralelo usando SeeTest para las instancias correspondientes. En este ejemplo, Selenium y Appium se complementan. Este es otro ejemplo de automatización de pruebas web y móviles.
¿El framework Appium está basado en Selenium o no?
Por último, una aclaración sobre la automatización de aplicaciones móviles nativas. Al escribir pruebas de interfaz de usuario para ellas e interactuar con los elementos de las páginas móviles, accedemos a ellos mediante un objeto que es una instancia de la clase `io.appium.java_client.MobileElement`, que extiende `org.openqa.selenium.remote.RemoteWebElement`. Esto significa que las pruebas para las aplicaciones móviles nativas utilizarán Selenium implícitamente para acceder a los elementos de la página móvil.
Conclusión
En resumen, Selenium y Appium no son frameworks aislados que se puedan usar únicamente para la automatización de pruebas web y móviles, respectivamente. Estos frameworks se pueden usar juntos en una misma prueba para probar aplicaciones web en el navegador móvil y para la implementación de casos de prueba complejos que implican interacciones con clientes web y móviles. Todos estos casos de prueba se pueden ejecutar fácilmente en la plataforma SeeTestEn resumen, SeeTest ofrece una variedad de dispositivos móviles y navegadores para realizar pruebas. Además, se encuentra entre las plataformas en la nube líderes para la automatización de pruebas web y móviles.
Para ver cómo funciona todo de primera mano, Haz clic aquí para una prueba gratuita.
También puede interesarle
Reintentar es fácil. Saber lo que te dijeron no lo es.
Si ejecutas pruebas con Appium, ya puedes volver a intentarlo…
Reintentar la operación no solucionará un problema de localización.
Una prueba de inicio de sesión pasa el lunes, falla el martes y…
Cómo un equipo del sector público extendió su estrategia de UiPath a las pruebas móviles
Esta es una historia real de un cliente. Hemos ocultado la información del cliente…

