5.09 min to readApplication Services

Automatización de pruebas con Katalon Studio

ferruelo-garcia-david-contact1
David Garcia FerrueloQA Tester, Application Services
An aerial view of a train track in a city.

La automatización de pruebas es la creación de un proceso automático que se encarga de realizar un conjunto de acciones controladas contra el software a probar con el fin de determinar si el funcionamiento del elemento probado se ajusta o no a lo esperado.

En el mercado existen diferentes frameworks y herramientas que simplifican el proceso de definición y ejecución de pruebas automáticas. Para nuestro ejemplo utilizaremos Katalon Studio (en su versión 8.1.0 Build 208).

Caso práctico: automatización de pantalla de Login

Nuestro objetivo en este ejemplo es implementar la automatización de las pruebas de un formulario de login estándar de una página Web. El objetivo es comprobar que cuando se introducen unas credenciales correctas, la web me devolverá un mensajes adecuado, mientras que cuando se utilizan credenciales incorrectas, recibamos un mensaje de error.

img_01_login_page

1. Captura de elementos

Para la ejecución automática de las pruebas es necesario poder interactuar con los diferentes elementos de la página web. Para que Katalon pueda interactuar con estos elementos, el  primer paso es “capturarlos”, por lo que haremos uso de la funcionalidad SPY Web para este fin:

img_02_spy_web

Una vez activada esta funcionalidad, veamos cual es el proceso para capturar el botón “login” del formulario. Para esto, haremos clic con el botón derecho sobre el botón y seleccionaremos la opción “Capture Object”.

img_03_capture_object

Katalon utiliza este proceso para intentar identificar de forma univoca al elemento seleccionado, pero esto no es un proceso directo, requiere de nuestra interacción para selecciona un mecanismo de identificación adecuado (seleccionar un “Locator”) y confirmar que dicho identificador no está siendo utilizado en alguna otra parte de la página (utilizando la opción “Verify and Highlight”). En este ejemplo, guardaremos la referencia al botón identificado con el nombre “button_login”.

img_04_spy_object

Repetiremos este proceso para el resto de elementos de la página con los que vamos a interactuar durante las pruebas: Username, Password y el mensaje de respuesta de login.

2. Definición de la prueba con Gherkin

Gherkin es un “pseudo-lenguaje” que nos permite hacer una definición de casos de prueba de forma sencilla y centrada en la parte funcional de dicha prueba, abstrayéndonos de las cuestiones técnicas subyacentes. Este lenguaje permite poner en práctica el BDD o Behavior Driven Development, es decir, definir el funcionamiento de un sistema en base al comportamiento esperado para el mismo.

Cada una de las pruebas particulares que se definen en Gherkin se llaman Scenario, los cuales se agrupan en Features. Para nuestro ejemplo, crearemos una nueva Feature llamada “Login.feature” dentro de “Include/features/” e incluiremos un Scenario con las pruebas que queremos realizar (en la práctica, una Feature es un fichero de texto en el que vamos a ir incluyendo diferentes Scenarios).

img_05_katalon_feature

Aunque el objetivo de este artículo no es explicar la sintaxis de Gherkin, vamos a revisar la definición del Scenario del ejemplo para así entender mejor el objetivo de las pruebas.

En la nueva Feature se ha introducido un Scenario “parametrizado” (Scenario Outline) denominado “Login validations”. Los Scenarios se componen de varios pasos, denominados Steps, en este caso con el siguiente significado:

  • Precondición: El usuario ha abierto el sitio web.
img_06_TC_given
  • Acción: El usuario inicia sesión con el nombre de usuario y contraseña indicado (son parámetros).
img_07_TC_when
  • Comprobación: El usuario debería ver un mensaje determinado (también parametrizado).
img_08_TC_then

Un Scenario Outline se ejecuta tantas veces como conjuntos de valores se han definido en el apartado Examples asociado. En el ejemplo, tenemos dos conjuntos de parámetros, el primero asociado a un proceso de login correcto y el segundo a un proceso de login incorrecto.

Como podrás ver, cada uno de los parámetro identificados anteriormente (títulos de las columnas) tiene un valor asociado para cada ejecución.

img_09_TC_Examples

3. Codificación de la prueba

Una vez definidos los Scenarios y sus Steps, debemos codificar la prueba a través de los Step definitions. El proceso es el siguiente:

  • Crearemos un nuevo Package, en nuestro caso lo llamaremos “loginPackage”. Un Package es una unidad organizativa para el código fuente que vamos a desarrollar.
img_10_package

Crearemos una Step Definition llamada “LoginStepDefinition” dentro del Package creado anteriormente (una Step Definition es una clase de tipo Groovy que utiliza Katalon para implementar las pruebas con JAVA) y seleccionaremos que nos autogenere el “esqueleto” del contenido del fichero (samples).

img_11_step_definition
img_12_step_definition_keyword
  • El resultado será una clase con una estructura base para la implementación de nuestras pruebas:
img_13_step_definition_sample
  • Dentro de ésta clase, vamos a definir cada uno de los Steps creados en la Feature anterior, basándonos en el esqueleto disponible. La forma de asociar un determinado código a un Step es por medio de la propia definición textual del Step. Además, para referirnos a los elementos de la página desde el código de nuestras pruebas, haremos referencia a los elementos identificados en el primer paso.
img_14_step_definition_content

Llegados a este punto tenemos identificados los elementos con los que vamos a interactuar, hemos definido las pruebas que queremos ejecutar y hemos preparado el código necesario para “unir” ambos elementos, es decir, conseguiremos que la acción definida en la prueba se aplique sobre los elementos identificados de la página a probar.

4. Preparación de Test Cases y Test Suites

El siguiente paso es dar estructura a la ejecución de las pruebas. En Katalon existen 2 niveles jerárquicos de agrupación:

  • Test Case: que puede estar asociado a una o más Features.
  • Test Suite: que agrupa uno o más Test Case.

Con estos elementos tenemos una gran flexibilidad a la hora de generar y ejecutar diferentes planes de pruebas en función de las necesidades particulares de cada momento.

Para este ejemplo, crearemos un Test Case llamado “LoginRunner” asociado a la Feature creada anteriormente.

img_15_TC

Posteriormente, asociaremos este Test Case a una Test Suite llamada “Regression”.

img_16_TS

5. Ejecución de la prueba.

Ya está todo preparado para ejecutar nuestras pruebas automáticas. Podemos ejecutar la prueba desde la Test Suite y el resultado será el siguiente:

Automatizacion

Como puede ver en el video, Katalon se encarga de ir recorriendo los Steps definidos, ejecutando su código asociado y comprobando los resultados. Para esto, hace uso de un navegador para poder simular el proceso como si se tratase de un usuario real. Una vez termina la ejecución, también se puede configurar que Katalon suba a Azure Devops los resultados de la misma.

A pink, blue, and purple abstract background.

Applications Services

El mejor asesoramiento en modernización de aplicaciones para resolver los desafíos de transformación a los que se enfrenta tu negocio.

Applications Services

El mejor asesoramiento en modernización de aplicaciones para resolver los desafíos de transformación a los que se enfrenta tu negocio.

Author

ferruelo-garcia-david-contact1

David Garcia Ferruelo
QA Tester, Application Services