Pruebas móviles - Selendroid Framework
Selendroid es un marco de automatización de pruebas para probar aplicaciones nativas e híbridas de Android. Las pruebas de Selendroid se escriben utilizando la API del cliente Selenium Webdriver.
Beneficios de Selendroid
Totalmente compatible con JSON Wire Protocol / Selenium 3 Ready.
No se requiere modificación de la aplicación bajo prueba para automatizarla.
Prueba de la web móvil utilizando la aplicación webview del controlador de Android incorporada.
Mismo concepto para automatizar aplicaciones nativas o híbridas.
Los elementos de la interfaz de usuario se pueden encontrar mediante diferentes tipos de localizadores.
Los gestos son compatibles: API de interacciones de usuario avanzadas.
Los emuladores existentes se inician automáticamente.
Selendroid admite la conexión en caliente de dispositivos de hardware.
Integración completa como un nodo en Selenium Grid para escalado y pruebas paralelas.
Compatibilidad con varias API de destino de Android (10 a 19).
Inspector integrado para simplificar el desarrollo de casos de prueba.
Selendroid se puede extender en tiempo de ejecución con sus propias extensiones.
Selendroid puede interactuar con múltiples dispositivos Android (emuladores o dispositivos de hardware) al mismo tiempo.
Inconvenientes de Selendroid
El inconveniente de esta herramienta es que es bastante lenta y, en algunas máquinas con menos de 4 GB de RAM, no se puede utilizar.
Cómo usar Selendroid
Step 1- Los requisitos previos para utilizar Robotium es Java SDK (mínimo 1.6). Si no tiene Java instalado en su sistema, siga los pasos que se indican a continuación.
Descargue JDK y JRE desde Oracle JavaSE
Acepta el contrato de licencia.
Instale JDK y JRE.
Configure la variable de entorno como se muestra en la captura de pantalla a continuación.
Step 2- Descargue Android Studio desde el SDK de Android (llevará tiempo debido al tamaño del archivo).
- Haga doble clic en el exe y ejecute el instalador.
- Continúe con todas las opciones predeterminadas.
- Establezca ANDROID_HOME.
Step 3- Descargue los archivos jar de Selenium y la aplicación de prueba de Selendroid
- Descargue el archivo jar de selenio y la aplicación de prueba.
- Colóquelo en cualquier carpeta, es decir, D: \ SelendroidJars.
Step 4 - Dispositivo físico con cable USB.
Asegúrese de que el dispositivo esté conectado a la estación de trabajo con un cable USB.
Asegúrese de que el modo de depuración USB (en configuración → Opciones de desarrollador) esté habilitado.
Probar una aplicación con Selendroid
Para probar una aplicación con Selendroid, siga los pasos que se indican a continuación:
Step 1 - Instala Eclipse.
Step 2 - Crea un proyecto Java.
Step 3 - Agregue el archivo jar de Selendroid descargado al proyecto recién creado.
Step 4 - Agregue los archivos jar de Selenium descargados al proyecto recién creado.
Step 5 - Configurar testNG en el Eclipse.
Step 6- Conecte los dispositivos móviles con el sistema mediante un cable USB. Configure el modo de depuración USB desde las opciones del desarrollador en la configuración.
Step 7- Ejecute el servidor Selendroid. Abra el símbolo del sistema y escriba el siguiente código y presione Enter -
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid-standalone iniciará un servidor http en el puerto 4444 y escaneará todos los dispositivos virtuales Android (avd) que el usuario haya creado (~ / .android / avd /).
Abra el navegador web y navegue hasta: http://localhost:4444/wd/hub/status.
Step 8- Crear un proyecto Java; agregue las bibliotecas Selendroid Standalone, los tarros de Selenium y las bibliotecas JUnit en la ruta de compilación.
Step 9 - Crear paquete bajo el proyecto Java.
Step 10 - Cree una clase debajo del paquete y escriba el siguiente código.
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;
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;
public class SelendroidTest {
private WebDriver driver ;
@BeforeSuite
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("selendroid-test-app-0.9.0.apk");
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new
SelendroidCapabilities("io.selendroid.testapp:0.9.0");
driver = new SelendroidDriver(caps);
}
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
WebElement button = driver.findElement(By.id("buttonTest"));
button.click();
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
WebElement element = driver.findElement(By.id("label_username"));
String text = element.getText();
System.out.println(text);
element = driver.findElement(By.id("inputUsername"));
element.sendKeys("bob");
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("[email protected]");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage"));
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
Step 11 - Ejecutar la clase con la configuración de ejecución testNG.