Selendroid Tutorial para principiantes con ejemplo.
ยฟAlguna vez ha desarrollado una Android aplicaciรณn y publicarla en Google ยฟJugar? ยฟQuรฉ harรกs si recibes una reseรฑa de usuario como esta?
Cuando publicas una aplicaciรณn en Google Para jugar, debe probarse bien para evitar posibles errores. Hay muchรญsimos escenarios de prueba que deben ejecutarse antes de publicar una aplicaciรณn. Para ahorrar el Pruebas esfuerzo, necesita una herramienta de prueba. Una de las mejores herramientas de prueba para Android la aplicaciรณn es Selendroid.
ยฟQuรฉ es Selendroid?
Selendroid es un marco de automatizaciรณn de pruebas para varios tipos de aplicaciones mรณviles: nativo y camiones hรญbridos Android aplicaciรณn y mรณvil web.
Puedes escribir las pruebas usando el Selenium 2 API de cliente. Porque Selendroid todavรญa reutilizaciones de lo existente Selenium infraestructura para la web
Selendroid es una poderosa herramienta de prueba. Se puede utilizar en emuladores y real Mรฉdicos
Por quรฉ necesitamos Selendroid?
Selendroid es una gran herramienta de prueba. Pero es posible que aรบn dudes de su utilidad.
Esta secciรณn presentarรก las caracterรญsticas importantes del Selendroid para responder a la pregunta por quรฉ necesitas Selendroid.
- Puede probar la aplicaciรณn bajo prueba usando Selendroid sin ninguna modificaciรณn de la aplicaciรณn. Sรณlo necesitas el archivo binario (APK) instalado en la computadora. Para instalar el archivo binario en el dispositivo, la aplicaciรณn de prueba y la aplicaciรณn mรณvil deben estar firmadas con la misma clave de firma.
- Selendroid La aplicaciรณn de prueba puede interactuar con varios dispositivos o simuladores simultรกneamente. Es una gran ventaja de Selendroid. Para que puedas probar tu aplicaciรณn con varios Android dispositivos para comprobar la compatibilidad.
- Selendroid puede simular acciones de usuarios humanos en una aplicaciรณn, como tocar, deslizar, arrastrar y soltar en dispositivos
- Puede cambiar los dispositivos de hardware (conectar y desconectar) durante la prueba sin reiniciar ni detener el sistema.ping la prueba. Selendroid reconoce los nuevos dispositivos automรกticamente
- Correspondiente a la Android Versiรณn API actualizada, Selendroid tambiรฉn es compatible con el nuevo Android API (De API 10 a API 19)
- Selendroid tambiรฉn tiene una herramienta de inspecciรณn incorporada para ayudarlo a identificar el elemento de la interfaz de usuario de una aplicaciรณn bajo prueba. Por ejemplo, el botรณn ID, el campo de texto, la vista de textoโฆ
Selendroid Architectura
Selendroid se basa en la Android marco de instrumentaciรณn. Selendroid Las pruebas se escriben en base a Selenium API de cliente de controlador web, por lo que admite la integraciรณn completa con la versiรณn actual. Selenium marcos.
La siguiente figura describe la arquitectura de Selendroid
Selendroid contiene 4 componentes principales:
- Cliente de controlador web: el Java biblioteca cliente basada en Selenium. Esta biblioteca debe instalarse en la computadora (que se utiliza para desarrollar los casos de prueba)
- Selendroid-Servidor: el servidor que se ejecuta en la aplicaciรณn bajo prueba el Android dispositivo o simulador. Estos son los componentes principales de un Selendroid
- Android Driver-App โ Una aplicaciรณn integrada Android controlador, aplicaciรณn Web View para probar la web mรณvil.
- Selendroid-Independiente: este componente se utiliza para instalar el Selendroid servidor y la aplicaciรณn bajo prueba (AUT)
Empezar con Selendroid
Ya sabes la importancia del Selendroid. Ahora ensuciรฉmonos las manos con Selendroid.
Hay 3 pasos que se deben realizar antes de la primera prueba con Selendroid
Configurando un Selendroid entorno empresarial
Selendroid puede funcionar en ventana, Linux y Mac OS. En este tutorial, configuraremos Selendroid en el sistema operativo Windows.
Antes de utilizar Selendroid, primero debes instalar el siguiente paquete
- Java SDK (mรญnimo 1.6)
Debe aceptar el acuerdo de licencia y descargar el instalador de Java (elija la base x64 o x86 en su sistema operativo)
Descargue e instale el Java SDK como software normal
- รltima versiรณn de Android SDK
- Su computadora debe tener al menos una Android Dispositivo virtual (AVD), o un dispositivo real Android dispositivo conectado a la PC.
- Selendroid Independiente con dependencias, Selendroid Cliente, y Selenium Cliente
- Eclipse software
- Configurar JAVA_HOME y ANDROID_HOME
Paso 1) En Windows, haga clic derecho en Computadora -> Propiedades -> Configuracion avanzada del sistema
Paso 2) Visualizaciรณn de la ventana Propiedades del sistema, seleccione la pestaรฑa Avanzado -> Variables de entorno
Paso 3) Aparecerรก la ventana Entorno, haga clic en Nuevo -> Introduzca una variable ANDROID_HOME de la siguiente manera
El valor de la variable es la ruta a android-sdks que ya instalaste.
Encuentre la ruta de la variable del sistema -> Editar -> Aรฑade la siguiente lรญnea despuรฉs de la lรญnea actual
Similar a ANDROID_HOME, agregue la nueva variable JAVA_HOME con el valor que se muestra a continuaciรณn
El valor es el Camino hacia tu Java instalaciรณn JDK
Paso 4) Reinicia tu PC -> Terminado
Cรณmo lanzar Selendroid
Paso 1) Poner a prueba una aplicaciรณn
Puedes usar existentes Selendroid aplicaciรณn de prueba para comprobar cรณmo Selendroid trabajos (Enlace a la aplicaciรณn de muestra bajo prueba)
Una vez que se complete la descarga, copie este APK y el anterior Selendroid Tarro independiente archivo a una carpeta con el nombre โGuru99 "
Paso 2) Inicie el Selendroid
Abra la terminal en Windows y navegar a la carpeta Guru99 creados en el paso 1.
Ejecute el siguiente comando
La salida se mostrarรก de la siguiente manera
Despuรฉs de ejecutar este comando, Selendroid-ยกSe inicia el servidor HTTP independiente! El nรบmero de puerto predeterminado de este servidor es 4444. Todos los dispositivos de hardware, asรญ como Android Dispositivo virtual, serรก escaneado y reconocido automรกticamente. Selendroid identificarรก el Android versiรณn de destino y tamaรฑo de pantalla del dispositivo.
Para verificar el Android Con la versiรณn de destino y la informaciรณn del dispositivo, puede ejecutar lo siguiente: URL en un navegador: http://localhost:4444/wd/hub/status.
Selendroid comando bรกsico
Esta secciรณn le presenta algunos conceptos bรกsicos Selendroid-Lรญnea de comando independiente. Puede usarlos para configurar el Selendroid entorno de prueba
- Configuraciรณn del puerto de Selendroid
El puerto predeterminado de Selendroid es 4444. Pero puede cambiar a otro puerto agregando un parรกmetro al comando para iniciar Selendroid
Parรกmetro: -puerto [nรบmero de puerto]
Por ejemplo:
En el comando anterior, 5555 es el nuevo puerto.
Entonces el URL para verificar Android La versiรณn de destino se cambia a: http://localhost:5555/wd/hub/status
- Especifique la ubicaciรณn de la aplicaciรณn bajo prueba (archivo APK binario). Selendroid a menudo se requiere la ruta absoluta para este archivo
Parรกmetro: -aplicaciรณn [ruta de archivo]
Por ejemplo:
En el comando anterior, el Selendroid encuentra automรกticamente el archivo binario en funciรณn de โC:\GuruEscriba "99App.apk" para obtener la informaciรณn de la aplicaciรณn que se estรก probando.
Asegรบrate de leer URL
http://localhost:4444/wd/hub/status, verรกs esta informaciรณn - Cambie el puerto el Selendroid utiliza para comunicarse con el servidor de instrumentaciรณn. Selendroid utiliza el puerto 8080 como predeterminado
Parรกmetro: -selendroidServerPort [nรบmero de puerto]
Ejemplo
El puerto ahora ha cambiado a 9000.
- Cambie el tiempo de espera para iniciar los emuladores. La unidad es milisegundos.
Parรกmetro: -timeoutEmulatorStart
Por defecto, Selendroid Esperarรก 300,000 milisegundos hasta que se inicie el emulador. Puede cambiar a un nuevo tiempo de espera (200,000 ms) mediante comando
Despuรฉs de este tiempo, nuestro emulador no puede iniciarse, el Selendroid arrojarรก el error de excepciรณn (Se produjo un error al buscar dispositivos/emuladores) y luego dejarรก de ejecutarse
- Cuando empiezas el Selendroid en la terminal, verรก un registro impreso en la pantalla. Puede cambiar el tipo de registro que ve agregando el siguiente parรกmetro
Parรกmetro: -logLevel [tipo de registro]
Los valores del nivel de registro son ERROR, WARNING, INFO, DEBUG y VERBOSE. Valor predeterminado: ERROR.
Por ejemplo, establezca Selendroid Para imprimir solo el registro de ADVERTENCIA, puede utilizar este comando
El Selendroid imprimir sรณlo el registro de ADVERTENCIA
Comience su primera prueba con Selendroid
Esta secciรณn es una guรญa paso a paso para crear su primer script de prueba usando Selendroid
Supongamos que tenemos un Android aplicaciรณn bajo nombre de prueba Guru99App. La aplicaciรณn incluye un campo de texto y un botรณn llamado โMostrar textoโ.
Necesitamos ejecutar lo siguiente Caso de prueba usando Selendroid
| Casos de prueba | Estado del producto | Rendimiento esperado |
|---|---|---|
|
El binario de la aplicaciรณn bajo prueba estรก disponible.
Un dispositivo estรก conectado a la PC |
El texto โTexto Mostrar aquรญโ se cambia al texto
quรฉ usuario ingresa en un campo de texto |
Paso 1) Crรฉar un Java proyecto en Eclipse
Paso 2) Aรฑade selenio y Selendroid Archivo jar en entornos eclipse
Haga clic con el botรณn GuruProyecto de prueba 99 -> Construir camino -> Agregar externo Archives
Navegue hasta la carpeta que almacenรณ los archivos jar.
Se deben agregar 3 archivos jar
- selendroid-client-0.10.0.jar : Selendroid biblioteca cliente java
- selendroid-standalone-0.11.0-con-dependencias : Selendroid biblioteca de servidor independiente
- selenio-java-2.40.0.jar : Selenium Biblioteca de controladores web
Seleccionar todo -> Elija Abrir para agregar un archivo jar al proyecto
Paso 3) Despuรฉs de agregar la biblioteca anterior, esas bibliotecas se agregarรกn a las bibliotecas de referencia del proyecto de prueba. Un evaluador puede utilizar las API de esas bibliotecas para desarrollar el programa de prueba.
Cree el paquete โcom.guru.testโ y agregue el archivo java โGuru99Test.javaโ como se muestra a continuaciรณn
Haga clic en Guru99Prueba -> New -> PREMIUM
Escriba com.guru.test en el campo Nombre en Nuevo Java Diรกlogo de paquete ร Finalizar
El Eclipse crearรก listas de carpetas y subcarpetas como esta en la estructura del cรณdigo fuente
Paso 4) Instale TestNG por la Eclipse
In Eclipse, Ayuda -> Instalar nuevo software, en el cuadro de diรกlogo Instalar, haga clic en Agregar e ingrese lo siguiente
- Nombre: TestNG
- Ubicaciรณn: https://github.com/selendroid/selendroid
presiona OK -> Siguiente para instalar el TestNG
Paso 5) Copia el Guru99App.apk a la carpeta de la aplicaciรณn de prueba
Paso 6) Obtenga el ID de una aplicaciรณn bajo prueba.
Supongamos que tenemos un archivo APK llamado Guru99App.apk. Sigue los pasos descritos en la secciรณn anterior y ejecuta el comando en la terminal.
Abra el siguiente enlace en un navegador: http://localhost:4444/wd/hub/status.
Se muestra la informaciรณn del dispositivo, copie el valor de appId โcom.guru99app:1.0โ
Paso 7) Abra el archivo Guru99Test.java (en el cรณdigo de ejemplo) y modifรญquelo como sigue
Para crear una nueva sesiรณn de prueba con Selendroid, debes proporcionar la identificaciรณn de la aplicaciรณn en el formato: com.guru99app:1.0. Este Id. de aplicaciรณn se puede identificar en el paso 6. Si no configura el Id. de aplicaciรณn que coincida con el Android dispositivo, la sesiรณn de prueba arrojarรก un error y no se iniciarรก.
Despuรฉs de inicializar el dispositivo encontrado, Selendroid Crea un servidor selendroid personalizado e instala el Selendroid servidor en รฉl
Selendroid Tambiรฉn instala la aplicaciรณn en prueba e inicia el servidor selendroid en el dispositivo.
Despuรฉs de inicializar correctamente la sesiรณn de prueba, el comando de prueba comienza a ejecutarse en un dispositivo. (Como ingresar texto, presionar el botรณnโฆ). Si la prueba agrega la sesiรณn de prueba, el emulador se detendrรก automรกticamente
Paso 8) Iniciar la nueva sesiรณn de prueba
Inicie el Selendroid servidor usando el siguiente comando en la terminal como en el paso 6
Una vez que el Selendroid Servidor iniciado, abra el proyecto de prueba de ejemplo. Guru99prueba en Eclipse, establece un punto de interrupciรณn en la lรญnea 77 del archivo Guru99Test.java haciendo doble clic en la lรญnea 77 -> Se mostrarรก un punto como se muestra a continuaciรณn.
Inicie una sesiรณn de prueba haciendo clic con el botรณn derecho en GuruProyecto 99Test -> Depurar como -> Prueba Prueba.
Una sesiรณn de prueba comenzarรก como se muestra a continuaciรณn.
Paso 9) Obtenga el ID del elemento GUI de una aplicaciรณn bajo prueba
Despuรฉs de que la sesiรณn de prueba se inicie correctamente, abra el navegador y navegue a la URL http://localhost:4444/inspector
Verรก que la aplicaciรณn bajo prueba se inicia como se muestra a continuaciรณn.
Utilice el cursor del mouse para cada elemento de la interfaz de usuario de AUT (botรณn, campo de texto, etiqueta de texto), la identificaciรณn de cada elemento se resaltarรก en el panel derecho
Despuรฉs de este paso, puede obtener el ID de cada elemento de la interfaz de usuario anterior.
- Botรณn Mostrar ID de texto: โbtnMostrar"
- ID de campo de texto: โedtTexto"
- ID de texto de etiqueta: โtxtVer"
Esas identificaciones se utilizarรกn en el siguiente paso.
Paso 10) Ingrese al programa de prueba como se muestra a continuaciรณn
Un programa de prueba que utiliza Selendroid incluye 3 secciones
Prueba de configuraciรณn:
A continuaciรณn se muestra el cรณdigo para la prueba de configuraciรณn, que configurarรก la condiciรณn para una sesiรณn de prueba. En caso de error, el Selendroid lanzarรก la excepciรณn y la aplicaciรณn de prueba se detendrรก.
El cรณdigo incluye los comentarios para explicar cada afirmaciรณn.
package com.guru.test;
import io.selendroid.SelendroidCapabilities;
import io.selendroid.SelendroidConfiguration;
import io.selendroid.SelendroidDriver;
import io.selendroid.SelendroidLauncher;
import io.selendroid.device.DeviceTargetPlatform;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
/**
* @author Guru99 Test App using Selendroid
* Application under test: Guru99App
*
*/
public
class Guru99Test {
//Declare web driver variable
private WebDriver driver;
/**
* Setup the environment before testing
* @throws Exception
*/
@BeforeSuite
public
void setUp() throws Exception {
//Start selendroid-standalone during test
SelendroidConfiguration config = new SelendroidConfiguration();
// Add the selendroid-test-app to the standalone server
config.addSupportedApp("Guru99App.apk");
//start the standalone server
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
// Create the selendroid capabilities
SelendroidCapabilities capa = new SelendroidCapabilities();
// Specify to use selendroid's test app
capa.setAut("com.guru99app:1.0");
// Specify to use the Android device API 19
capa.setPlatformVersion(DeviceTargetPlatform.ANDROID19);
// Don't request simulator, use real device
capa.setEmulator(false);
//capa.wait(10000000);
// Create instance of Selendroid Driver
driver = new SelendroidDriver(capa);
}
Ejecutar prueba
A continuaciรณn se muestra el cรณdigo para ejecutar una prueba. El cรณdigo incluye los comentarios.
Aquรญ estรกn los pasos de la prueba nuevamente.
- Introduce el texto โHolaโ Guru"
- Haga clic en el botรณn Mostrar texto
- Espera un momento
- Verifica que la aplicaciรณn muestre el texto que el usuario ingresa en un campo de texto (Ej. Mostrar el texto โHolaโ). Guru")
/**
* Start execute the test case
* 01. Enter the text "Selendroid" to the textfield
* 02. Press OK button
* @throws Exception
*/
@Test
public
void selendroidTest() throws Exception {
// Print the log
System.out.print("Start executing test");
// Find the input text field on screen
// The id of this text field was get from step 9
WebElement inputField = driver.findElement(By.id("edtText"));
// Verify that the text field enabled so user can enter text
Assert.assertEquals("true", inputField.getAttribute("enabled"));
// Enter a text to text field
inputField.sendKeys("Hello Guru");
// click Show Text button
// The id of this button was get from step 9
WebElement button = driver.findElement(By.id("btnShow"));
button.click();
// Delay time to take effect
Thread.sleep(5000);
//Find the label "Text Show Here" on screen
// The id of this label was get from step 9
WebElement txtView = driver.findElement(By.id("txtView"));
//Get the text display on screen
String expected = txtView.getText();
// Verify that the text which user enter on text field is same as text display on screen
Assert.assertEquals(expected, inputField.getText());
}
Finalizar prueba
El siguiente cรณdigo completarรก la prueba deteniรฉndoseping <font dir="auto" style="vertical-align: inherit;">las </font> Selendroid conductor.
/**
* Stop the Selendroid driver
*
*/
@AfterSuite
public
void tearDown() {
driver.quit();
}
Puede ver los detalles en el cรณdigo de muestra incluido en este artรญculo.
Paso 10) Conectar Android dispositivo a la PC mediante un cable USB. Puntos a observar โ
- Asegรบrese de que el dispositivo no tenga configurado ningรบn bloqueo de pantalla.
- Los dispositivos deben conectarse a travรฉs de USB a la computadora en la que se ejecuta el componente selendroid-standalone.
- El dispositivo debe instalar al menos Android Target Versiรณn API 10
Paso 11) Ejecutar la aplicaciรณn de prueba: clic derecho Guru99test -> Correr como -> TestNG compruรฉbalo
Paso 10) El script comienza a ejecutarse de la siguiente manera
Paso 12) Una vez que la prueba finaliza la ejecuciรณn, TestNG genera automรกticamente el informe de prueba de la siguiente manera
Buen trabajo, ya has terminado la prueba.
Resumen
- Selendroid es una herramienta muy poderosa para probar Android aplicaciรณn nativa, la aplicaciรณn hรญbrida y la aplicaciรณn web.
- Se puede utilizar tanto en dispositivos reales como en el simulador.
- Tambiรฉn le permite ejecutar pruebas en paralelo ejecutando una prueba en mรบltiples dispositivos.
- La totalidad Selendroid La suite se compone de cuatro componentes:
- cliente de controlador web,
- Selendroid-Servidor,
- Android Aplicaciรณn de controlador
- Selendroid-ser รบnico
- Para utilizar Selendroid necesitas Java JDK, Android SDK y Eclipse instalado.


































