Skip to main content

Ejemplo Adaptador Móvil

English

Descripción

Actualmente, podemos hacer cualquier gestión desde nuestros dispositivos móviles: comprar un billete de avión, escanear documentos, pedir cita médica, reconocer una melodía, grabar vídeos, buscar una ubicación, pedir ayuda en situación de emergencia o peligro, entre otras muchas cosas. El caso de prueba que hemos diseñado muestra un ejemplo de como trabajar con el Adaptador Móvil y el emulador. Vamos a instalar la app de Duolingo, para lo cual necesitamos el archivo:

apkDuolingo.png
APK son las siglas de Android Application Package y es uno de los términos que más se repiten en cualquier proyecto de apps. Se trata de un archivo ejecutable que contiene todos los datos que se necesitan para instalar y hacer funcionar una aplicación Android de una manera parecida a cómo lo haces, por ejemplo, con los archivos .exe en Windows. Y es único para cada una de ellas.

¿Cuál es la diferencia entre una app y una APK? Ambas instalan lo mismo en el teléfono y funcionan de idéntica manera. Lo que sí que indican es la forma de instalación: cuando descargas la app desde Google Play es la tienda la que se ocupa; con los APK debes ser tú quien los instale, también quien los actualice.

Enunciado del ejercicio

Una vez instalada la app de Duolingo, nos dará la bienvenida e interactuaremos como si fuera nuestro propio móvil. Veremos la pantalla de presentación e iremos aceptando, contestando y eligiendo las opciones que nos presenta. También recogeremos el texto de algunas pantallas y lo escribiremos en un fichero de texto que hemos creado para tal fin.

Posteriormente podremos ejecutar el caso de prueba. Este es un ejemplo realizado con TAST, donde trabajamos exactamente igual que si lo hubiéramos hecho con un móvil físico.

La funcionalidad del Adaptador Móvil es usar e interactuar con dispositivos Android, incluyendo ambos emuladores como dispositivos físicos. La configuración necesaria se encuentra en el apartado Guía para Adaptador Móvil de TAST.

Para trabajar con el Adaptador Móvil hay que tener instaladas y configuradas varias aplicaciones.

La primera es la aplicación Appium, que ahora viene en dos partes.

Appium Servidor.

Appium Servidor.png
Va devolviendo los mensajes y logs del sistema. Se desactivará marcando la casilla que veis en la imagen inferior.


Preparación 1.png
Appium Inspector.

Appium Instructor.png
A través de él, se podrá realizar la transmisión con el emulador y con el Cliente de TAST. También podremos realizar la búsqueda de los elementos necesarios para el mapeo.


Preparación 2.png

Veremos una primera casilla “Desired capabilities” y marcaremos la segunda “Saved Capability Sets 1”. En la pantalla “JSON Representation” registraremos los datos necesarios, siguiendo esta estructura:

{
“deviceName”: “Nexus 5 API 28l”,
“platformName”: “Android”,
“platformVersion”: “9.0”,
“udid”: “emulator-5554”
}

Donde:

  • deviceName: es el nombre que le quieres dar a tu dispositivo.
  • platformName: es el tipo de Sistema operativo, en la mayoría de los casos será Android.
  • platformVersion: es la versión del Sistema operativo del dispositivo.
  • udid: es el ID guardado previamente del adb.exe.

Android Studio.

Este software fue diseñado para la creación de aplicaciones móviles con sistema operativo Android. Una vez que se han instalado todos los componentes, se configurara el emulador, con el que trabajaremos como si fuera un móvil normal.

Android Studio.png

Android Studio1.png
Una vez activado, nos aparece la siguiente pantalla:


Android Studio2.png

El siguiente paso será marcar la pestaña de Empezar sesión en Appiumn Inspector.

Preparación 3.png

Esperamos unos segundos y nos aparecerá la siguiente imagen, momento en el que interactúa con el emulador:

Preparación 4.png

Ahora ya podemos diseñar nuestro caso de prueba. Buscaremos los elementos necesarios para realizar los mapeos de los mensajes.

Cada vez que hagamos una nueva búsqueda, iremos actualizando los datos, marcando la casilla que veis en la imagen siguiente:

Mapeo.png

Resolución del caso de prueba

Los parámetros que necesitamos a la hora de configurar el Adaptador serán los siguientes:

  • Device: Nexus7 o custom.  Se elige “custom” si no estas usando Nexus como emulador.
  • Device Json Capabilities: aquí hay que poner las JSON capabilities de tu dispositivo. Son las que has puesto en Appium.
  • URL HUB: esta es la URL para tu hub. Por defecto es: http://localhost:4723/wd/hub.
  • URL Browser: URL que quieres abrir si vas a usar un navegador.
  • Validate insert values: comprueba que los valores insertados son los que se han puesto.
  • Full Screenshot: para tomar un pantallazo completo.
  • Incognito mode: para poner el navegador en modo incógnito.

El diagrama que hemos diseñado es el siguiente: https://app.cloud1.testautomationsystemtool.com/opendiagram?id=13203

Diagrama.png

Adaptadores utilizados

Los adaptadores utilizados para este caso de prueba son los siguientes:

Adaptador de Usuario

Siempre presente en todos los diagramas. Todos los mensajes definidos en el diagrama parten de este adaptador. No tiene parámetros de inicialización.

Adaptador Móvil

Los parámetros que debemos completar son los siguientes:

  • En la casilla de Device Json Capabilities, hay que poner las mismas que hemos que hemos puesto al configurar Appium.
  • URL HUB: esta es la URL por defecto para tu hub: http://localhost:4723/wd/hub
  • URL Browser (Opt.): se indica la URL que quieres abrir si vas a usar un navegador.
  • Validate insert values: si se marca la casilla, valida los valores insertados, comprueba que sean los que se han puesto.
  • Full Screenshot: si se marca la casilla, toma un pantallazo completo.
  • Incognito mode: al marcar esta casilla el navegador trabaja en modo incógnito.

Parámetros de Adaptador Móvil.png

Adaptador de Texto
  • FilePath: La ruta completa, incluido el nombre del archivo representado por el adaptador en el diagrama.

Parámetros de Adaptador de Texto.png

Funciones y elementos relevantes

Separaremos las funciones por el adaptador al que pertenecen:

Adaptador de Usuario
  • waitFor(TimeInSeconds): tiempo de espera en segundos, recibido por el parámetro.
Adaptador Móvil
  • activateApp(App package): esta función activa (trae al frente) la aplicación especificada y que no está actualmente activa, o está corriendo en segundo plano. Se especifica el paquete de app en el parámetro.
  • click(Element): hace click en un elemento específico.
  • closeApp(): cierra la aplicación.
  • getAttribute(Element, Attribute): recibe el texto, valor o atributo del elemento y lo guarda en una variable.
  • installApp(appPath): instala una aplicación. El archivo .apk especificado tiene que ser un path en tu PC.
  • pressHome(): presiona el botón “Home” en el dispositivo.
  • removeApp(appId): desinstala la aplicación especificada del dispositivo.
  • startApp(appPackage, appActivity): inicia la aplicación especificada.
  • switchToNativeApp(): cambia al modo Native App.
  • waitFor (Time in seconds): espera el tiempo especificado en segundos.
  • waitForElement (Time in seconds, Element): esta función espera a que aparezca el elemento especificado en pantalla.
Adaptador de Texto
  • writeTo(writeString): Escriba la cadena de texto en el archivo, al final del mismo.

Ejecución del Test Set

Al abrir el cliente de TAST, lanzamos la ejecución y vamos comprobando que se realiza correctamente. Una vez ejecutado queda registrado que se ha ejecutado con éxito, ya que aparece marcada en verde la casilla de Status.

EjecuciónPruebaMóvil.png

Captura de Resultados


Al terminar de ejecutar este caso de prueba, tenemos como resultado la carpeta de evidencias, donde se almacena tanto el log de la ejecución, como los ficheros que se hayan podido generar así como las capturas de pantallas de la ejecución, si hemos marcado en Validación la casilla de obtener evidencias en las Propiedades del diagrama.

Abrimos el icono que está al lado de la casilla Status y nos muestra la ruta donde se almacena todos los archivos. 


Carpeta de evidencias:

EvidenciasPruebaMóvil1.png

Log de la ejecución:


logdelaejecucion.png

Mostramos a continuación algunas de esas capturas de pantallas, (aumentadas de tamaño), que nos van apareciendo durante la ejecución:

     duolingo1.png        duolingo2.png     duolingo3.png    duolingo4.png

      duolingo5.png      duolingo6.png         duolingo7.png        duolingo8.png
 

De dos de ellas hemos cogido el texto con la función getAttribute y se ha registrado en el fichero .txt

                                         texto 1.png                       texto 2.png


Podemos abrir ese fichero de texto (duolingo.txt), y vemos cada texto recogido en un renglón, como en la imagen siguiente:

Texto recogido.png

Si posteriormente se vuelve a ejecutar este caso de prueba, TAST nos pedirá confirmación para hacer los cambios en el fichero de texto, e irá sobrescribiendo y añadiendo el nuevo texto en los renglones posteriores.

Por último, a nivel de auditoría, TAST nos devuelve los resultados en un documento Word, en el que se detallan los pasos que hemos realizado, los resultados obtenidos de cada paso, los enlaces al diagrama y al test set, si hemos dado a descargar documento en la casilla de Resultados. 


Resultados.png

Archivos necesarios para ejecutar el caso

En este ejemplo hemos necesitado dos archivos para poder realizar y ejecutar este caso.

El archivo:image.png


Y un archivo .txt, ambos guardados en nuestro directorio C:

EvidenciasPruebaMóvil.png

Os pasamos un link, para que accedáis al vídeo con la explicación de este caso de prueba. https://vimeo.com/808320488