Automatización Con Appium
Automatización Con Appium
Automatización Con Appium
Cochabamba – Bolivia
ii
Resumen 7
Introducción 8
1 Generalidades 9
2 Metodología 11
4. Arquitectura de Appium 17
11. Conclusiones 41
12. Bibliografía 42
5
FIGURE 23. PRESIONANDO SOBRE EL BOTÓN QUE NOS PERMITIRÁ AÑADIR UN MONTO. 37
Resumen
El software es uno de los pilares de la sociedad moderna, ya sea por trabajo, negocios o placer.
Tanto los niños como los adultos tienen una fuerte dependencia de la tecnología que está asentada
sobre aplicaciones y servicios de software sólidos y robustos. Esta dependencia se basa en la
garantía de que las aplicaciones de software y las utilidades son seguras y fiables.
Desde la otra perspectiva, la industria del desarrollo de software evoluciona de forma muy
rápida, dada la demanda y las oportunidades que ofrece el mercado en forma de necesidades no
cubiertas. Desgraciadamente, muchos esfuerzos se van al cubo de la basura en el desarrollo de
software. Varias fuentes del sector señalan que aproximadamente un 80% de los proyectos de
software no tienen éxito por malas previsiones, ejecuciones de proyecto, presupuestos y recursos
limitados, o funcionalidades inapropiadas, o la mala estandarización de los procesos de Software.
Ya que vivimos en la era móvil, existen muchas aplicaciones tanto en iOS, Android y
Windows Phone; Observando también que las mayorías de las aplicaciones web son receptivas
(responsives) hoy en día lo que permite a los usuarios móviles disfrutar de una experiencia de
navegación sin inconvenientes en sus dispositivos móviles. Ahí es donde entran los ingenieros de
control de calidad de software (testers), éstos tienen una ardua tarea en sus manos para seguir
creando aplicaciones que sean de fácil procedimiento y entendimiento para los usuarios. Con el
propósito entonces de realizar estas pruebas de software y gestionar los errores o fallas que se
pueden presentar durante el desarrollo, a través de una manera eficiente han surgido diferentes
Hoy en día existen muchas herramientas para la automatización móvil, una de ellas es
Appium. Es una herramienta ampliamente utilizada, flexible y escalable; de código abierto para
la automatización móvil, con esta herramienta se puede automatizar aplicaciones para iOS,
Introducción
En vista de que existen una amplia demanda de aplicaciones, y que se desea que estas sean de
buena calidad, den confianza y un buen servicio a los usuarios. Los ingenieros de control de
mejores herramientas que les ayuden a tener un mejor resultado para comprobar la funcionalidad
Es por eso que en esta ocasión se observara como funciona Appium Desktop; una herramienta
que es usada para comprobar la funcionalidad de las aplicaciones; el tipo de arquitectura que
La finalidad es de dar a conocer esta herramienta para todos los desarrolladores de software y
a las empresas, todos los beneficios que nos ofrece Appium Desktop, puesto que en nuestro País
aún es desconocido, son muy pocas las empresas que utilizan esta herramienta para automatizar
1 Generalidades
El software es uno de los pilares de la sociedad moderna, ya sea por trabajo, negocios o placer.
Tanto los niños como los adultos tienen una fuerte dependencia de la tecnología que está asentada
sobre aplicaciones y servicios de software sólidos y robustos. Esta dependencia se basa en la
garantía de que las aplicaciones de software y las utilidades son seguras y fiables.
Desde la otra perspectiva, la industria del desarrollo de software evoluciona de forma muy
rápida, dada la demanda y las oportunidades que ofrece el mercado en forma de necesidades no
cubiertas. Desgraciadamente, muchos esfuerzos se van al cubo de la basura en el desarrollo de
software. Varias fuentes del sector señalan que aproximadamente un 80% de los proyectos de
software no tienen éxito por malas previsiones, ejecuciones de proyecto, presupuestos y recursos
limitados, o funcionalidades inapropiadas, o la mala estandarización de los procesos de Software.
Ahí es donde entran los ingenieros de control de calidad de software, éstos tienen una ardua
tarea en sus manos para seguir creando aplicaciones que sean de fácil procedimiento y
entendimiento para los usuarios. Con el propósito entonces de realizar estas pruebas de software
y gestionar los errores o fallas que se pueden presentar durante el desarrollo, a través de una
manera eficiente han surgido diferentes herramientas de prueba para así poder generar software
de mejor calidad.
Hoy en día existen muchas herramientas para la automatización móvil, una de ellas es Appium
Desktop. Es una herramienta ampliamente utilizada, flexible y escalable; de código abierto para
la automatización móvil, con esta herramienta se puede automatizar aplicaciones para iOS,
Appium Desktop brinda el poder del servidor de automatización de Appium en una interfaz de
usuario flexible. Dicha interfaz puede configurar opciones, iniciar/detener el servidor; Además no
10
necesita usar Node/NPM para instalar, ya que el tiempo de ejecución de Node viene incluido con
Appium Desktop.
Appiun Desktop tiene un inspector que se usa para ver los elementos de una aplicación,
obtener información básica sobre ellos y realizar interacciones básicas con ellos.
Existen demasiadas aplicaciones en la tienda de juegos (Play Store) de los teléfonos móviles,
estas están creciendo en demasía; estas sobrepasan los 2 billones teléfonos inteligentes alrededor
del Mundo. Es por eso que la mayoría de las personas entre niños, jóvenes y adultos tienen un
Pasamos a ver las aplicaciones móviles, como una forma de ecosistema y como éstas están
El mundo de las aplicaciones está dominado en su mayoría por dos sistemas operativos, estas
son iOS y Android, la mayoría de las aplicaciones están creadas en base a éstas dos plataformas.
2 Metodología
Las aplicaciones nativas están desarrolladas por una plataforma en particular; por ejemplo,
iPhone está desarrollada en el lenguaje de programación Swift y las aplicaciones para Android
están desarrolladas en Java. Las aplicaciones nativas van con respecto a los sistemas operativos
12
en los cuales fueron desarrolladas y éstas no pueden funcionar en otras, en otras palabras, existem
Se trata de “Paper by FiftyThree” la cual empezó como una aplicación para dibujar, pero se
convirtió en un bloc de notas virtual para crear listas o anotaciones para fotografías. Puedes
organizar tus anotaciones como quieras y al terminar puedes explorarlo como un PDF.
Swipe este teclado es uno de los más veteranos y avanzados de Android, fue el primero que
revoluciono la forma de escribir, la cual permite redactar largos textos, con total precisión y una
velocidad envidiable, gracias al sistema de introducción arrastrando el dedo entre las letras.
Las diferencias entre Android y iOS son muchas y muy importantes. Aunque ambos sistemas
operativos siempre están tratando de mejorar a pasos grandes tratando de evitar que sus
competencias como Windows. Muchas de las aplicaciones trabajan en exclusiva con iPhone o
Para empezar, Android está presente en un gran número de terminales de todas las
características y precios, mientras que iOS va de la mano del iPhone y otros dispositivos móviles
de Apple como los iPod y iPad. Apple garantiza que su software y firmware está optimizado para
funcionar con su hardware, mientras que en Android eso depende en parte del fabricante.
La desventaja de iPhone sobre Android es que la mayoría sus aplicaciones son de paga y éstas
no son al alcance de muchos bolsillos. Lo que no pasa con Android ya que la mayoría sus
Las aplicaciones web tienen acceso a los buscadores de los teléfonos, son rápidas y fáciles de
acceder ya sea Safari para iOs y Chrome para Android. Estas son desarrolladas usando
tecnologías como ser HTML5 o JavaScript; éstos básicamente se sirven desde un servidor y no se
Las aplicaciones web tienen en común un código base y pueden ser accedidos por cualquier
dispositivo que tenga un buscador. Para las aplicaciones web, responsive web es el nuevo
estándar para proveer los servicios de diferentes tamaños de pantalla y sus resoluciones.
Cochabamba, el cual puede ser abierto por cualquier dispositivo móvil que tenga un buscador. La
Las aplicaciones móviles híbridas son una combinación de tecnologías web como HTML,
CSS y JavaScript, que no son ni aplicaciones móviles verdaderamente nativas, porque consisten
porque se empaquetan como aplicaciones para distribución y tienen acceso a las APIs nativas del
dispositivo. Además, éste tipo de aplicaciones se pueden visualizar dentro de un navegador web
por medio de la URL donde su contenido se adapta a la pantalla y toma aspecto de navegador
web.
16
Instagram es una red social y aplicación para subir fotos y videos, tiene la capacidad de poder
compartir fotografías en la misma red social o en otras, tales como Facebook o Twitter.
El testeo de móviles no está ocupado en su totalidad; existen pocas herramientas que valen la
Appium es una herramienta de código abierto para automatizar diferentes tipos de aplicaciones
iOS
Android
Windows
17
Ahora veremos Appium, como es su arquitectura y como facilita la automatización sobre las
aplicaciones.
Appium fue diseñado para satisfacer las necesidades de automatización de pruebas móviles de
acuerdo con una filosofía esbozada por los siguientes cuatro principios:
4. Arquitectura de Appium
Es un servidor web (HTTP server) escrita en Node.js, crea y maneja múltiples sesiones de
WebDriver. Recibe conexiones de un cliente, escucha los comandos, ejecuta esos comandos en
un dispositivo móvil y responde con una respuesta HTTP. Es lo mismo que el servidor Selenium,
donde en el servidor de selenio obtiene las solicitudes HTTP de las bibliotecas del cliente
Selenium. El hecho de que tengamos una arquitectura de cliente / servidor abre muchas
posibilidades: podemos escribir nuestro código de prueba en cualquier idioma que tenga una API
de cliente http, pero es más fácil usar una de las bibliotecas de cliente de Appium. Podemos poner
En esta imagen se puede observar que Appium es multi-plataforma, se puede adaptar a los
Appium usa UIAutomation API de Apple para interactuar con los elementos de la
interfaz de usuario. UIAutomation es una biblioteca de JavaScript proporcionada por Apple para
escribir Scripts de prueba; Appium utiliza estas mismas bibliotecas para automatizar aplicaciones
de iOS.
19
Una vez ejecutada los scripts de testeo, estos van en forma de JSON a través de una solicitud
de HTTP hacia el servidor de Appium. El servidor de Appium envía los comandos al controlador
de instrumentos de iOS, estos buscan el archivo bootstrap.js, que Appium envía al dispositivo
iOS. Luego estos comandos se ejecutan en el archivo boostrap.js dentro del entorno de
mensaje al servidor Appium con los detalles de registro del comando ejecutado.
bootstrap.jar en lugar del archivo boostrap.js. Appium es compatible con la versión de Android
que supera o equivale a 17; Cuando ejecutamos los scripts de prueba, Appium envía el comando
servidor TCP, que podemos usar para enviar el comando de prueba para realizar la acción en el
Es útil para automatizar tus pruebas de iOS y Android, siendo una herramienta de código
abierto.
Al ser plataforma cruzada permite que podamos escribir el código una sola vez, y luego se
Mucho tiempo para configurar appium tanto para Android como para iOS.
No soporta versiones antiguas a Android, las pruebas deben realizarse de Android 4.2 para
adelante.
Siga los siguientes pasos para descargar la última versión de Appium desktop
Ahí se puede observar versiones disponibles para descargar Appium ya sea para el sistema
Ahora veremos los pasos que se debe realizar para instalar Appium Desktop
Abrir el folder donde está localizado la descarga de Appium, doble click en el exe para
inicializar el proceso de instalación.
En esta imagen se debe elegir una de las opciones de instalación y hacer click en el botón
“Instalar”.
24
Una vez finalizada la instalación, marcar el checkbox de “Ejecutando Appium” y hacer click
Para verificar que la instalación y la configuración fue exitosa, hacer click en el botón “Start
Server”. Este debe iniciar el servidor de Appium y usted debe poder ver en la pantalla que el
Las capacidades deseadas son claves y valores codificados en un objeto JSON, enviados por
los clientes de Appium al servidor cuando se solicita una nueva sesión de automatización. Estos
comunican a los manejadores de Appium todo tipo de cosas importantes sobre cómo quiere que
funcione su prueba. Cada cliente Appium crea capacidades de una manera específica para que el
cliente logre entender, pero al final del día, se envían a Appium como objetos JSON.
Cuando se tiene el servidor de Appium corriendo, si presiona sobre el botón de “Inicio sesión
Una nueva ventana de Appium aparece, es la ventana de Appium Desktop Inspector la que se
durante la inicialización de la sesión, que le indican a Appium qué tipo de cosas queremos
automatizar. Bajo la pestaña 'Capacidades deseadas', puede usar los campos de formulario y el
botón '+' para ingresar tantas capacidades deseadas como necesite. También verá una
representación del JSON resultante, que es lo que realmente se envía al servidor Appium. Esto
puede ser útil para verificar sus capacidades, o para copiar y pegar cuando se reportan problemas.
incluir:
Para obtener más información con respecto a las “Desired Capabilities” y obtener la lista de
todas las capacidades deseadas que puede usar Appium, consulte el documento (Appium).
de Appium.
Endpoint Descripción
Sauce Labs Inicia una sesión en la nube de Sauce Labs. (Gochenour & Mogan)
Una vez que se tiene todos los campos de capacidades requeridas se procede a guardar estos,
Ahora pasamos a ver rápidamente los pasos a seguir para guardar las capacidades requeridas.
Una vez ingresados los campos de capacidades requeridas, debe hacer click en el botón “Salvar
32
como”; Usted debería poder ver una ventana que emergerá solicitando el nombre del conjunto de
capacidades
Debe ingresar cualquier nombre que usted desee usar y después debe hacer click en el botón
salvar. Una vez realizada dicha operación, para verificar que realmente se guardó correctamente
debe dirigirse a la pestaña siguiente, que esta con el nombre de “Saved Capabilities Sets”.
Ahí podrá observar que realmente se guardó las capacidades requeridas con el nombre que
usted puso.
Primero se debe verificar que el dispositivo móvil esté conectado con la máquina, después se
debe presionar el botón de iniciar sesión; usted puede realizar este paso desde la pestaña de
El inspector es una representación visual del estado junto con la capacidad de realizar ciertas
Las sesiones de Appium puede tomar un tiempo para cargarse, asi que debe ser paciente, una
vez cargada la sesión aparecerá una captura de pantalla de su dispositivo en la parte izquierda de
la ventana. Puede pasar el mouse sobre los elementos de la interfaz de usuario y verlos resaltados.
como XML; usted puede navegar por este árbol haciendo clic en él o haciendo clic en los
de la pantalla) o en la parte del árbol (parte central); su información aparecerá en la vista de los
detalles en el lado derecho del inspector. Esta vista de detalle consta de acciones potenciales que
se pueden tomar contra el elemento y una tabla de las propiedades del elemento. Estas
Nótese que en este panel tiene tres opciones en la parte de arriba, las cuales son “Tap, Send
Keys, Clear” todos los botones pueden ser usados para realizar acciones en la aplicación.
Al presionar cualquiera de estos botones, podrá notar todas las acciones que se realice en
Appium se realizaran así también en su dispositivo móvil ya sea este físico o un simulador de un
comando a Appium, que lo ejecutará. Si la acción tiene éxito, se generará una nueva captura de
Si usted hace click en el cuadro de texto de Buscar en el panel de la captura de pantalla, para
que este se muestre en el panel de los elementos seleccionados, ingresa “Google” y seguidamente
continuación
En esta ventana emergente si se ingresa cualquier texto, luego se hace click en el botón “Send
Keys” se podrá observar que en el panel de captura de la pantalla el texto que usted haya
ingresado al igual que en su dispositivo. Es así que de esta manera usted podrá interactuar con los
diferentes elementos de su dispositivo usando Appium Desktop Inspector. Usted notara que estas
características son útiles al momento de realizar las pruebas que desee realizar en aplicaciones.
37
pantalla la imagen del dispositivo con la aplicación a probar, en la cual se tiene un valor de
Seguidamente pasamos a ingresar el valor que se añadirá a la cantidad que se tiene de base.
Figure 23. Presionando sobre el botón que nos permitirá añadir un monto.
38
Posteriormente se debe hacer click sobre el botón “Send Keys” que se encuentra en la parte
En la imagen anterior se puede observar que una vez ingresado el monto que se desea añadir,
la pantalla del dispositivo se actualiza, para posteriormente observar el valor que se desea
Luego pasamos a presionar sobre el botón para calcular el monto; es la sumatoria del monto
Por ultimo podremos observar que el monto total cambia, se incrementa el monto que
11. Conclusiones
cada sesión este le dice al servidor de Appium en que tipo de plataforma y que aplicación desea
automatizar.
Con Appium Desktop Inspector usted podrá identificar fácilmente las propiedades de los
Se puede observar que para Appium Desktop la documentación es irregular y su sitio web es
Se puede notar que puede llegar a tener un futuro brillante ya que se reforzó por los Sauce
Labs.
42
12. BIBLIOGRAFÍA
started/index.html
https://docs.headspin.io/
Verma, N. (2017). Mobile Test Automation with Appium. Birmingan-Mumbai: Packt Publishing
Ltd.