Underc0de

Sistemas Operativos => Android => Mensaje iniciado por: ANTRAX en Diciembre 13, 2012, 08:52:12 PM

Título: Automatizaciones en Android con Selenium II
Publicado por: ANTRAX en Diciembre 13, 2012, 08:52:12 PM
(http://2.bp.blogspot.com/-JCYwLOwRz8Q/UMpiLomXZdI/AAAAAAAABcs/FeYlUShVz1Q/s200/1.png) (http://4.bp.blogspot.com/-h_wMxLf2XN0/UMpiO5XxaoI/AAAAAAAABdc/iOmWdF5aCG0/s200/2.png)

1 – Introducción

En este documento voy a mostrar como lanzar automatizaciones en un dispositivo móvil con android, que puede ser teléfono o tablet y con eclipse elaboraremos un script que por medio de Selenium II será ejecutado en el dispositivo.

Los elementos que vamos a utilizar para este tutorial serán los siguientes:

-        Dispositivo móvil con Android y el USB (En mi caso es un Motorola XT300) o puede ser un emulador que lo encontramos dentro del SDK que descargaremos.
-        Android SDK (http://developer.android.com/sdk/index.html) Incluye Eclipse
-        Android Server APK (http://code.google.com/p/selenium/downloads/list)
-        Librerias de Selenium - Java (http://seleniumhq.org/download)
-        Conexion WIFI a internet

2 – Integración de ADB

Descargamos Android SDK y lo descomprimimos. Copiamos la carpeta SDK y Eclipse y la pondremos en el disco C (Creandole una carpeta para alojar a ambos)
En mi caso los metí dentro de una carpeta llamada android y me quedo en esta ruta:

c:\android

Lo que sigue ahora es definir la variable de entorno. Para que el equipo me reconozca el adb que viene dentro del SDK.

Para ello vamos a:

Inicio >> Panel de control >> Sistema >> Configuraciones avanzadas del sistema

Una vez ahí dentro, nos dirigimos a la pestaña Avanzada >> Variables de entorno

Editamos el PATH y colocamos la ruta en la que copiamos el SDK. Deberíamos tener algo como esto:

(http://4.bp.blogspot.com/-87JYVQs9t_A/UMpiP8bTmII/AAAAAAAABdk/j1pXnyYPopA/s640/3.png)

Añadimos un punto y coma después de la ultima ruta, colocando la nuestra. En mi caso es

c:\android\sdk\platform-tools

Si todo quedo correcto, deberíamos poder colocar "adb" en una consola y debería traer los parámetros del mismo

Inicio >> cmd >> adb

(http://2.bp.blogspot.com/-I3od3N0hxG8/UMpiQ0vRhXI/AAAAAAAABdw/ersdi1QERhM/s1600/4.png)

Si llegamos hasta acá, quiere decir que todo está perfecto. De lo contrario, lo más seguro es que este mal definido el PATH.

3 – Instalación de drivers USB

Tomamos nuestro dispositivo móvil y vamos a activar el modo de depuración

Configuraciones >> Aplicaciones >> Desarrollo

Y tildamos "Depuración de USB"

Una vez hecho esto, conectamos el dispositivo a la PC y abrimos eclipse que está en la carpeta que creamos en el disco C.

Abrimos el Android SDK Manager y descargamos los USB Drivers. Al estar conectado el dispositivo móvil, identifica que drivers utiliza y descargara e instalara automáticamente los drivers necesarios.

(http://1.bp.blogspot.com/-e5FUY93QPYA/UMpiQc1YkiI/AAAAAAAABdo/3mcG6wyI2ak/s640/5.png)

Para saber si todo quedo bien instalado, abrimos una consola y tipeamos

adb devices

Y esto debería devolvernos un número de serie que es nuestro dispositivo conectado.

(http://4.bp.blogspot.com/-uONWhZGN2sU/UMpiSBnVx1I/AAAAAAAABeE/-lT5u7UB4co/s640/6.png)

Si llegamos hasta acá, es por que venimos muy bien! En caso de lanzar error, es porque el driver del dispositivo, no fue bien instalado.

4 – Instalación de Android Server en el móvil

Abrimos una consola y nos paramos en el directorio en donde se encuentra el Android Server APK. Una vez ahi, escribimos la siguiente línea:

adb -s [serialId] -e install -r [APK]

En donde el serialId es el serial de nuestro dispositivo móvil y APK es el nombre con el cual descargaron el Android Server. Debería quedarles algo como esto:

adb -s 003089349226000000000000 -e install -r android-server-2.6.0.apk

(http://1.bp.blogspot.com/-rgns4Mq2-Wc/UMpiRTgDCRI/AAAAAAAABd0/pkt2fuJKJZA/s640/7.png)

Si nos aparece el Success como en la imagen, es porque quedo bien instalado.

Ahora iniciaremos la aplicación en el móvil con el siguiente comando

adb -s [serialId] shell am start -a android.intent.action.MAIN -n org.openqa.selenium.android.app/.MainActivity

Automáticamente, se iniciara en el móvil la aplicación WebDriver (recuerden reemplazar el SerialId por el de ustedes)

(http://1.bp.blogspot.com/-2ByhDeHLNtM/UMpiRzyVDdI/AAAAAAAABd8/J5vWAvM1fiA/s640/8.png)

Finalmente seteamos el puerto de escucha con el siguiente comando

adb -s [serialId] forward tcp:8080 tcp:8080

5 – Creación del proyecto e importación de librerías

Abrimos eclipse y creamos un nuevo proyecto.

File >> New >> Java Project

(http://3.bp.blogspot.com/-9Epmx_xd8FY/UMpiSXmosNI/AAAAAAAABeA/ZTesflU4_n4/s1600/9.png)

Asignamos un nombre al proyecto y una ubicación, seguido a esto, damos click en Next.

Vamos a la pestaña de librerías y pulsamos el boton Add External JARs...

Añadimos la librería de android.jar que está dentro de:

sdk >> platforms >> android-4.2

Y las de selenium que descargamos

(http://1.bp.blogspot.com/-P5Hx1CHNkOE/UMpiL74dx3I/AAAAAAAABc0/ed3Sm2UVGds/s1600/10.png)

Finalmente clickeamos en Finish

6 – Ejecutando nuestro primer Script

File >> New >> JUnit Test Case

Le colocamos un nombre y damos click en Finish

(http://3.bp.blogspot.com/-rnRckjH5ZIc/UMpiL398kwI/AAAAAAAABcw/eCcUf2OEl4U/s1600/11.png)

Borramos lo que tenemos dentro del cuadro de código y colocamos el siguiente:

Código (java) [Seleccionar]
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.android.AndroidDriver;


public class androidtest {
               
private static WebDriver driver;
   
    @Before
    public void setUp() {
        driver = new AndroidDriver();
       driver.get("http://underc0de.org");
    }
   
    @After
    public void tearDown(){
        driver.close();
        driver.quit();
    }

@Test

public void measurePerformance() throws InterruptedException {
    Thread.sleep(3000);
    driver.findElement(By.className("readViewMoreBtn")).click();

}
}


(http://2.bp.blogspot.com/-foisMedHyQ4/UMpiMsNHgXI/AAAAAAAABc8/4HUk20xpHXA/s640/12.png)

Ejecutamos el Test Case y podremos verlo en nuestro móvil. Al finalizar, nos mostrara el resultado si se corrió bien o mal.

(http://4.bp.blogspot.com/-hfSwt0sfGbM/UMpiMoi2GCI/AAAAAAAABdA/gfK86yplX5Q/s1600/13.png)

7 – Emulando el ambiente de prueba

Presionamos el icono del dispositivo móvil (ADV) que está en el eclipse. Y crearemos un nuevo dispositivo

(http://4.bp.blogspot.com/-enYAt9UHWTI/UMpiNYzJAEI/AAAAAAAABdI/qVt7-l-o-r4/s640/14.png)

Le asignamos un nombre, elegimos la resolución de pantalla y la versión de android, luego damos click en ok.

(http://4.bp.blogspot.com/-MurqGRWTiVI/UMpiNtXRJLI/AAAAAAAABdM/G4so7rjfxRk/s640/15.png)

Seleccionamos el emulador, presionamos Start y luego Launch, y se abrirá el emulador.

(http://1.bp.blogspot.com/-n6pILEUw3LM/UMpiOOcuIPI/AAAAAAAABdU/A_8D0JNRSO4/s1600/16.png)

Una vez hecho esto, los pasos para lanzar la prueba son los mismos que la anterior, es decir, repetimos los pasos del punto 4, que eran los de instalar el andoird server en el móvil.

Finalmente, lanzamos el test con eclipse

(http://3.bp.blogspot.com/-NUeuOMxk4QA/UMpiOwANYrI/AAAAAAAABdY/GyOrhewKz_g/s1600/17.png)

Y con esto podremos hacer más scripts y lanzar las pruebas contra el emulador.

Espero que les haya gustado y les sirva.

ANTRAX
Título: Re:Automatizaciones en Android con Selenium II
Publicado por: Aurora en Diciembre 21, 2012, 09:47:00 AM
Hola Antrax!!!
Lei tu post, y me parecio sumamente sencillo, claro, conciso ...sin duda un excelente aporte para aquellos que estamos interesados en el tema.
Gracias :-)
Título: Re:Automatizaciones en Android con Selenium II
Publicado por: chechu995 en Enero 27, 2013, 07:42:59 PM
Gran post, veamos si por fin puedo poner usar bien android en el PC
gracias por compartir, saludos.