Hace un tiempo, Abstracta presentó este artículo en el que se habla del estado del arte en el campo del testing automatizado. Una de las herramientas que se mencionan en ese artículo es Mabl, herramienta que ya había llamado nuestra atención en este post cuando hicimos una comparativa de la velocidad en distintas herramientas. Hoy vamos a ahondar en la herramienta para que puedas conocerla mejor.
Por Federico Pintos y Aparicio Elissalde
Overview
Mabl es una herramienta SaaS que se centra en atacar tres de los más grandes problemas del testing: velocidad, cobertura y confianza. Para lidiar con todos estos problemas, Mabl propone un enfoque en el cuál la principal idea es lograr una solución low-code, auto-healing y SaaS que apunte a simplificar la creación y el mantenimiento de los tests, hacerlos escalables a la vez que se emplea menos tiempo reparando pruebas.
Presenta todo en una interfaz amigable para el usuario que propone quitar las complicaciones que se generan a la hora de administrar infraestructuras de prueba o diferentes frameworks, presentando todo en una única aplicación web o de escritorio. También soporta testing entre distintos navegadores y tiene integración con Jira, GitHub, GitLab o Bitbucket entre otras herramientas.
¿Cómo aborda Mabl los problemas de la automatización de pruebas?
Generalmente, cuando empezamos a usar una herramienta low-code para pruebas automatizadas, nos solemos encontrar con algunos problemas comunes que hacen nuestra experiencia con la herramienta un dolor de cabeza, tales como problemas a la hora de iterar en un formato while, for, do-while, validaciones limitadas, mantenimiento de pruebas o manejo de diferentes tipos de datos como fechas o strings. En este post veremos qué propone Mabl para lidiar con estas complejidades.
Para empezar, Mabl poseé una interfaz intuitiva que permite crear test mientras se navega por la aplicación tal cual como un usuario lo haría, y simultáneamente agregar validaciones de manera sencilla. Además utiliza machine learning, por lo que los locators pueden actualizarse automáticamente a medida que la aplicación va cambiando, lo cual Mabl afirma reduce el esfuerzo invertido en el mantenimiento de las pruebas.
Esto significa que los selectores van a adaptarse dinámicamente a los cambios que se presenten en la aplicación, mejorando también la confiabilidad. Esto resulta complejo de medir, pero en nuestra experiencia realizando pruebas sobre este sitio vimos que la herramienta fue capaz de manejar los cambios en la aplicación exitosamente.
Además de esto, Mabl brinda la posibilidad de crear fragmento de código JavaScript que, si bien rompe un poco con el enfoque low-code, resulta práctico para trabajar con tipos de datos complejos.
Configurando ambientes y aplicaciones
Para comenzar a trabajar con Mabl creando nuestros tests y que nuestro proceso sea más práctico y ordenado es una buena idea configurar primero el ambiente y la aplicación que queremos probar. En Mabl una aplicación está englobada dentro de un ambiente, por lo que crearemos primero un ambiente y dentro de este la aplicación que contiene la URL del sitio que será testeado y/o el endpoint de la API a testear.
Esto lo podemos hacer en la sección “Configuration” del panel izquierdo, en la pestaña “Application” con el botón en la esquina superior derecha de la interfaz podremos crear tanto un ambiente como una aplicación.
Para el ambiente, vamos a necesitar ingresar información básica como un nombre, una descripción, etiquetas, también podemos agregar variables de ambiente. En la aplicación, como mencionamos anteriormente, necesitaremos especificar las URLs y los endpoints que serán testeados, así como el ambiente al que pertenece.
Una vez esta configuración esté completa, todos estos componentes serán utilizables desde nuestros test plans y tests.
Creando un Test Plan
En los Test Plan, básicamente tendremos definido un conjunto de pruebas configuradas para ejecutarse de manera síncrona o asíncrona sobre un ambiente específico.
Podemos crear un Test Plan a través de la sección “Plan” en el panel izquierdo de la interfaz, haciendo click en el botón “New Plan” en la esquina superior derecha.
Aquí ingresaremos información básica sobre el plan, seleccionaremos el ambiente, podemos tener diferentes stages o etapas con distintos tests en cada una de ellas, seleccionaremos un dispositivo y podremos determinar disparadores.
Una vez creado, podremos verlo en la sección “Plans”.
Creando un Test
La manera más sencilla de crear un test en Mabl es a través del botón “New Test” en el panel izquierdo de la interfaz. Ahí determinaremos si queremos crear un test web o API.
Para ambas alternativas, ingresaremos información similar. Debemos especificar el nombre, opcionalmente una descripción, etiquetas, deberemos elegir entre una aplicación un dispositivo desktop o mobile y su resolución (para este caso particular en el que trabajaremos con un test web), y seleccionaremos un Test Plan que podrá existir previamente, crear uno nuevo en ese momento o no asignar ningún plan.
Modularización
Mabl, presenta la posibilidad de crear “flows” o flujos, que son un set de pasos que podemos automatizar y luego utilizar múltiples veces en un test o en otros distintos. Estos flujos contribuyen a acelerar la creación de tests y a disminuir su mantenimiento.
Lo más importante de los flows es que son reutilizables y podemos insertarlos en cualquier lugar que queramos. De esta manera podemos hacer cambios a muchos test en simultáneo, simplemente editando el flujo que es utilizado por todos ellos, mejorando el proceso de las pruebas para ahorrar tiempo y reducir la repetición de código.
Para que las ejecuciones del flujo sean distintas, debemos usar parámetros, que son esenciales para ampliar la cobertura utilizando menos recursos.
Por otro lado, la manera en la que funcionan estos flujos no soluciona los problemas de no poder crear loops en la forma tradicional con código, ya que no podemos usar las estructuras a las que estamos acostumbrados. Podemos de todas maneras encontrar una alternativa para usar estas estructuras trabajando con fragmento de código JavaScript pero igualmente tiene sus limitaciones tales como no poder navegar entre páginas.
Validaciones en Mabl
Para poder agregar validaciones a nuestros tests, Mabl ofrece varias maneras de seleccionar los elementos a través de distintos tipos de selectores:
- Estándar: Cuando interactuamos con un elemento, Mabl recolecta información sobre sus atributos y elige dónde encuentra mayor coincidencia.
- Configurado: Como usuario podemos seleccionar cuál es el atributo más importante como selector.
- Elementos similares: Si Mabl encuentra elementos parecidos nos pedirá que especifiquemos información extra como puede ser el nombre de la clase o el href. De esta manera si la posición o el contenido del elemento cambia, podremos encontrarlo de todas maneras sin necesidad de usar XPath o CSS. La herramienta nos muestra con una barra la seguridad del contexto que le damos para aconsejarnos sobre cuán fuerte es nuestro selector dependiendo de los atributos que seleccionemos.
- XPath y CSS: Selectores visuales. Es importante saber que este tipo de selectores no están cubiertos en el auto-heal de Mabl.
Podemos hacer validaciones verificando si un elemento está presente o no, sobre un atributo o propiedad (igual, no igual, contiene, no contiene, empieza o termina con o no, mayor o menor que), validar URLs, cookies, variables o email, definiendo además qué debe hacer la herramienta en caso de fallar.
Data-Driven Testing
En lo que refiere a Data-Driven Testing, la herramienta propone el uso de Data Tables, que pueden ser importadas desde archivos CSV o creadas directamente en la plataforma. Las tablas no tienen límite de variables y pueden ser usadas en cualquier test nuevo o existente. La manera en la que funcionan es iterando el test una vez para cada valor de la tabla, en distintas ejecuciones.
Es importante no confundir Data-Driven Testing con iterar una tabla en una única ejecución de un test, que son distintos conceptos.
Podemos crear una Data Table desde la sección “Configuration” en el panel izquierdo de la plataforma, en la pestaña “Data Tables”, dando click al botón “New Table”.
Vamos a tener que especificar el nombre de la tabla, agregar escenarios (que serían las iteraciones), y las variables. Podemos también ver qué tests están usando actualmente la tabla.
Para usar la tabla tendremos que crear un test web o API, o editar un test existente y habilitar la sección “Show advanced options” para poder seleccionar la tabla.
Ahora podremos acceder a las variables de la tabla desde el test.
API Testing
Otra funcionalidad interesante de Mabl es la posibilidad de probar flujos end-to-end integrando pruebas de API y de UI sin necesidad de cambiar de herramienta. Podemos validar estas pruebas en una única plataforma, así como crear precondiciones a nivel de API para nuestras pruebas de UI ganando así independencia del ambiente que estemos usando.
Para hacer API testing, una vez hayamos configurado nuestro test para que use el ambiente con el endpoint que queremos probar, podemos empezar a crear el test con sus requests.
En la parte izquierda de la ventana podemos agregar pedidos usando el símbolo de + y agregar variables, mientras que en lado derecho es dónde seleccionaremos el método y editaremos el test. Podemos crear variables para usarlas en otros pedidos o extraer valores de las respuestas para usar luego.
Aquí extrajimos un valor de nuestro primer pedido GET y lo usamos a continuación en nuestro pedido POST.
Conclusiones
Por ahora Mabl nos está mostrando ser una herramienta muy útil e intuitiva que puede lograr soluciones efectivas muy rápidamente. Hemos visto que posee muchas ventajas, como aumentar la confiabilidad de las pruebas o reducir tiempo de mantenimiento, que son elementos cruciales para acelerar y hacer más eficiente nuestro testing.
También vimos que presenta funcionalidades convenientes y sumamente valiosas como el auto-healing o la posibilidad de realizar pruebas de API y de UI en una misma plataforma.
Podemos hacer validaciones de manera sencilla y rápida, así como trabajar con distintos tipos de datos, variables y data tables. Por otro lado las iteraciones no están totalmente cubiertas, aunque proveé la alternativa de usar fragmentos de código JavaScript para lograr soluciones similares.
Te invitamos a darle una oportunidad al free-trial, y comparar las ventajas y desventajas, tiempos de automatización y lo efectivo que resulta aplicado al testing. Siempre estamos buscando conversar sobre automation y en particular sobre herramientas low-code, así que te invitamos a compartir tu experiencia en los comentarios para continuar la charla.
¡Síguenos en LinkedIn, Twitter, Facebook, Instagram y YouTube para ser parte de nuestra comunidad y conocer otras populares herramientas para automatizar pruebas de software!
Otros contenidos relacionados
Introducción a las pruebas automatizadas con TestProject
Cómo elegir la mejor Herramienta de Automatización de Pruebas para tu proyecto en 5 simples pasos
Data-Driven Testing y Reportes con TestProject
Postman: Explorando una herramienta para Automatizar Pruebas de API
Posts Relacionados
Todo sobre JMeter DSL en Selenium Conf 2023
Durante su presentación en la Selenium Conf 2023, nuestro CTO Roger Abelenda compartió un enfoque para crear pruebas de performance utilizando JMeter DSL a partir de scripts de Selenium. Se trata de una metodología sumamente útil para la automatización de pruebas, ya que permite reutilizar las pruebas de Selenium y verificar con precisión el funcionamiento de un sitio con alto tráfico.
Anuncio: nueva alianza entre Abstracta y Provar
Nos complace anunciar una nueva alianza estratégica con Provar, proveedor de soluciones de automatización de pruebas low-code para Salesforce, con la que podemos aportar más valor a nuestros clientes y trabajar para seguir mejorando nuestros servicios.