Es una herramienta de código abierto para automatizar pruebas de aplicaciones móviles web, nativas e híbridas para las plataformas de Android, iOS y en la plataforma de escritorio Windows.
Esta herramienta emplea Selenium WebDriver, que es un entorno de pruebas para las aplicaciones web y usa un protocolo cliente-servidor conocido como JSON Wire Protocol. Esto permite al cliente usar marcos de pruebas escritos en cualquier lenguaje, enviando las solicitudes HTTP apropiadas al servidor.
Un principio básico de esta herramienta, es que nos permite hacer los códigos de prueba en varios lenguajes de programación como son Java, Ruby, y C# sin tener que modificar la aplicación para poder hacer la automatización.
Es cross-platform (multiplataforma) por lo que es posible crear pruebas en diversas plataformas utilizando la misma API. Esto permite la reutilización de código entre conjuntos de casos de prueba definidos para una aplicación desarrollada para varias plataformas.
Una fase importante en la automatización de pruebas es la localización de los elementos con los que se desea interactuar. Appium permite comprobar automáticamente las propiedades y el comportamiento de los distintos elementos (botones, cajas de texto, etc) que componen la interfaz gráfica de una aplicación. Esto es posible mediante el uso de herramientas que inspeccionan los elementos de la aplicación como, por ejemplo, UIAutomatorViewer o el propio inspector de Appium, y a través de métodos de Selenium como FindElement, By, etc.
Appium nos permite ejecutar pruebas automatizadas para los tres tipos de aplicaciones móviles:
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: