En una entrada anterior ya hicimos una breve introducción de Appium en la que vimos su funcionamiento y características. Esta entrada continúa la anterior con un ejemplo práctico.
Mostraremos paso a paso la configuración de un entorno de pruebas y la implementación de un test para una aplicación de ejemplo en un sistema operativo Linux. Para ello, supondremos que en este punto se dispone de los siguientes elementos:
- Java VM
- Android SDK
- Node.js
- Npm
- Una aplicación web o híbrida (.apk)
- Un dispositivo Android
Index
Instalación de Appium
Antes de comenzar, debemos asegurarnos de haber instalado node sin privilegios de usuario, es decir, sin sudo. La forma más sencilla es descargar e instalar la última versión de node desde su propia web nodejs.org.
Otro dato a tener en cuenta es que debemos tener las variables de entorno de JAVA_HOME y ANDROID_HOME correctamente configuradas y añadidas a PATH:
export ANDROID_HOME="/<your-path-to-Android>/Android/Sdk" export JAVA_HOME="/<your-path-to-java>/java-8-oracle" export PATH="$PATH:$ANDROID_HOME::$ANDROID_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
A continuación, instalar Appium según lo indicado en su página:
npm install -g appium npm install -g appium-doctor npm install wd
Para asegurarnos de que tenemos todos las configuraciones previas necesarias, ejecutamos appium-doctor:
Por último, ejecutamos appium:
Configuración del entorno de desarrollo
Antes de empezar a preparar el entorno de desarrollo debemos descargar Selenium Standalone Server desde su página de descargas y Appium Java Client desde Maven.
El entorno de desarrollo que hemos utilizado es eclipse, el cual puedes descargar desde su web de descargas.
Una vez descargado e instalado, creamos un nuevo proyecto Java:

Accedemos a la configuración del Build Path haciendo Click derecho sobre el proyecto > Build Path > Configure Build Path > Pestaña Libraries:
Añadimos los ficheros .jar de Selenium Standalone Server y Appium Java Client haciendo Click en Add External JARs > Seleccionar los ficheros > Aceptar. Necesitaremos también la biblioteca de JUnit, por lo que debemos hacer Click en Add Library > Seleccionar JUnit > Next > Finish.
Para guardar todos los cambios hacemos Click en Apply and Close. El resultado en el proyecto debe verse como a continuación:
Implementación de los casos de prueba
Una vez configurado el entorno, nos disponemos a implementar los casos de prueba. Creamos una nueva clase dentro de src:
Lo primero que debemos hacer es crear el método setUp y el método tearDown, que se ejecutarán antes de después de las pruebas respectivamente:
package appiumTest; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.junit.After; import org.junit.Before; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.AppiumDriver; public class TestCases { AppiumDriver driver; @Before public void setUp() throws MalformedURLException { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("deviceName", ""); capabilities.setCapability(CapabilityType.PLATFORM_NAME, "Android"); capabilities.setCapability("platformVersion", "7"); File file = new File("apk folder", "apk name"); capabilities.setCapability("app", file.getAbsolutePath()); driver = new AppiumDriver(new URL("endpoint address"), capabilities); } @After public void tearDown() { driver.quit(); } }
Como es de esperar, añadimos también el método de prueba, donde incluiremos las operaciones que queremos que se ejecuten:
@Test public void TestMethod() { }
En este momento debemos hacer uso de la herramienta monitor de Android SDK para acceder a los distintos elementos presentes en cada pantalla de la aplicación. Como hemos comentado anteriormente, debemos tener bien configuradas las variables de entorno, en cuyo caso, simplemente escribimos monitor en el terminal:
Si disponemos de un terminal Android y este se encuentra conectado, la herramienta monitor lo va a detectar y nos lo mostrará:
NOTA: La herramienta monitor es la que se conocía como uiautomatorviewer, la cual comentamos en el primer post sobre Appium. Más información en el siguiente enlace.
Ejecutamos la aplicación y en la herramienta monitor nos aparecerá debajo del dispositivo. Para acceder a los elementos de la vista que se muestra actualmente en la aplicación debemos hacer Click en Screen Capture > Done > Click en Dump View Hierarchy for UI Automator:
Una vez seleccionamos un elemento, podemos ver sus propiedades, las cuales vamos a utilizar en el método TestMethod que creamos anteriormente:
@Test public void TestMethod() { MobileElement homeTab = (MobileElement) driver.findElement(By.id("tab-t0-0")); homeTab.click(); MobileElement aboutTab = (MobileElement) driver.findElement(By.id("tab-t0-1")); aboutTab.click(); MobileElement contactTab = (MobileElement) driver.findElement(By.id("tab-t0-2")); contactTab.click(); }
Una vez terminado de crear el método, lanzamos el programa como JUnitTest y vemos cómo se ejecuta en el dispositivo. Con esto ya podemos seguir creando casos de prueba y probando nuestras propias app o como parte del departamento de control de calidad (QA) de nuestra empresa.
Espero que haya servido de ayuda y que dé un pequeño empujón a quienes no tenían claro los primeros pasos en la creación de pruebas automatizadas con Appium.
Crea tu App a medida
En Tribalyte Technologies somo expertos creadores de apps a medida. Consulta nuestros casos de éxito y contáctanos ahora mismo sin compromiso para cualquier necesidad.
CONSULTA NUESTROS CASOS DE ÉXITO