En un artículo anterior (léelo si no lo has leído, por favor) ya había comentado cuáles son las bases que te van a permitir iniciar en automatización de pruebas con código:

  • Bases de la programación
  • Conceptos de pruebas automatizadas
  • Un lenguaje de programación
  • Bases de automatización de pruebas
  • Un framework de automatización
  • Herramientas de control de versiones

Y hoy quisiera hablar de la ruta más rápida que puedes tomar usando Playwright como framework de automatización y Javascript/Typescript como lenguaje de programación.

 

¿Por qué Playwright y TypeScript?

Playwright

  • Multiplataforma y Multi-browser: Playwright es un framework de automatización que permite ejecutar pruebas en diferentes navegadores (Chromium, Firefox, WebKit) y plataformas. Yo lo he usado para pruebas de API, de interfaz de usuario y de línea de comandos hasta ahora.
  • Fácil de configurar y utilizar: permite escribir tests robustos con menos código.
  • Integración nativa con CI/CD: Con Playwright, integrar tus pruebas en pipelines de integración continua es directo, lo que agiliza procesos.
  • Estrategia de selectores: super intuitiva y fácil de usar.
  • Recorder: permite grabar pruebas en el navegador y genera el código en función de todos los pasos que seguimos al grabar.

TypeScript

  • JavaScript con superpoderes: TypeScript es un superset de JavaScript que añade tipado estático, lo que ayuda a detectar errores en tiempo de compilación.
  • Mejora la mantenibilidad: Al trabajar con un código más predecible y auto-documentado, se facilita la colaboración entre equipos y la evolución del proyecto.
  • Popular en el ecosistema moderno: Muchos frameworks y herramientas modernas lo adoptan, por lo que aprender TypeScript te abre las puertas a otros proyectos en el futuro (con frameworks como Cypress, WebdriverIO y Appium).

Juntos, Playwright y TypeScript permiten escribir tests más claros, robustos y escalables, lo que resulta especialmente útil para quienes vienen del mundo del test manual y desean obtener resultados rápidos en automatización.

 

Iniciando

El primer paso, sin duda, es familiarizarnos con las bases de automatización de pruebas.

Iniciemos con tests de Interfaz de Usuario. Nuestras bases serían: lógica de pruebas, datos y configuraciones, patrones de diseño como Page Object Model y Screenplay, assertions, locators, locator strategies, retries y timeouts, parametrización de pruebas, Mocks/Stubs, logs, reportes, ejecución y orquestación, manejo de excepciones y mantenibilidad.

Te puedes apoyar en la web Test Automation University para explorar conceptos como Setting a Foundation for Successful Test Automation y Web Element Locator Strategies.

Luego, recomiendo mucho tomar un curso de Playwright que contenga las bases de Javascript/typescript para Testing. No necesitamos saberlo todo de un lenguaje de programación para empezar a contribuir en proyectos de software dedicados al testing. Aclaro que una suite de tests automatizados es un proyecto de software en sí mismo y, como tal, debemos aplicar las buenas prácticas de desarrollo, pero no hace falta que seamos expertos en este lenguaje (en este caso, Javascript/Typescript).

En lo que sí necesitamos ir más allá, es en el conocimiento del framework de automatización de pruebas, en este caso Playwright. Entender todo lo que podemos lograr con el framework, conocer la configuración, instalación, cómo parametrizar las pruebas, cómo correrlas y filtrarlas, cómo trabajar con distintas fuentes de datos, timeouts, retries, visual testing, reportes y las distintas integraciones disponibles, nos van a permitir sacar el máximo provecho del framework.

Entonces tu foco principal es aprender las bases del lenguaje de programación y mucho sobre el framework.

Te recomiendo el curso the The Free Range Tester, que tiene un capítulo con todo lo necesario de Javascript/Typescript para automatizar y todo lo que necesitas de Playwright.

 

Practicar

No vas a lograr mucho si no vas practicando lo que vas aprendiendo. Te dejo acá una lista de webs que puedes usar para practicar automatización de pruebas:

  • PHP Travels una web donde podrás reservar vuelos, hoteles, tours y carros.
  • Orange HRM un sistema super completo de gestión de recursos humanos.
  • Parabank: sistema de banca en línea.
  • Juice Shop: una tienda online. Este proyecto puedes instalarlo localmente y aplicar los cambios que desees. Fue creado con el propósito de correr pruebas de seguridad, pero también es útil para pruebas de interfaz de usuario.
  • XYZ Bank: una aplicación bancaria, mucho más sencilla que Parabank. Probablemente, esta es la más sencilla de la lista para comenzar tu primer suite de automatización.
  • Automation Exercise un carrito de compras que incluso diseñó los tests (solo los tienes que automatizar).

Inicia con la que te parezca más sencilla (en mi opinión XYZ Bank), diseña los casos y automatízalos.

 

Apóyate en la Inteligencia Artificial

A continuación te comparto un par de videos en los que podrás verme diseñando casos de pruebas y automatizándolos con la ayuda de ChatGPT y de Perplexity.

Creando una suite de Automatización con ChatGPT y Playwright.

Creando una suite de Automatización con Perplexity y Playwright.

Estas herramientas de Inteligencia Artificial no solo te ayudan a automatizar sino que te explican paso a paso (línea por línea de código) qué está haciendo (básicamente su lógica para crear el código). No es perfecto en sí mismo, pero allí entra nuestra lógica de testing y podemos pedirle mejoras en función de lo que queremos lograr con una determinada prueba (decidimos nosotros si su planteamiento es relevante o no, si un elemento -locator- puede/debe ser mejorado, si los assertions son los mejores que podríamos estar usando).

No dejes de usar esta herramienta mientras estás aprendiendo a automatizar.