Cómo hacer una prueba de regresión con Playwright y Python: guía práctica

Las pruebas de regresión son una de las primeras cosas que automaticé en mis proyectos con Playwright. Y tiene todo el sentido — es exactamente el tipo de tarea repetitiva que más tiempo ahorra cuando está automatizada. En este artículo te explico qué son, cómo funcionarlas y cómo implementarlas con Playwright y Python desde cero.


Qué es una prueba de regresión

Una prueba de regresión verifica que algo que funcionaba antes sigue funcionando después de un cambio en el código. Cada vez que un desarrollador añade una funcionalidad nueva, corrige un bug o modifica algo existente, existe el riesgo de que ese cambio rompa algo que ya funcionaba correctamente.

Las pruebas de regresión son la red de seguridad que detecta esos problemas antes de que lleguen a los usuarios.


Por qué Playwright es perfecto para la regresión

Las pruebas de regresión tienen que ejecutarse frecuentemente — idealmente en cada push al repositorio. Eso significa que tienen que ser rápidas, estables y fáciles de mantener.

Playwright cumple los tres requisitos. Su auto-waiting elimina los tests inestables, su velocidad permite ejecutar suites grandes en poco tiempo y su integración nativa con GitHub Actions permite automatizar la ejecución sin configuración compleja.

Si quieres saber más sobre qué es Playwright y por qué se ha convertido en el estándar puedes leer qué es Playwright y por qué cada vez más equipos QA lo eligen.


Estructura de un proyecto de regresión con Playwright

La estructura recomendada para organizar tus tests de regresión es esta:

proyecto/
├── pages/
│   ├── login_page.py
│   └── home_page.py
├── tests/
│   ├── test_login.py
│   └── test_navegacion.py
├── pytest.ini
└── requirements.txt

Esta estructura sigue el patrón Page Object Model, que hace que los tests sean fáciles de mantener cuando la interfaz cambia. Si no conoces el POM puedes leer qué es el Page Object Model y cómo usarlo con Playwright.


Cómo marcar los tests de regresión con pytest

Lo primero es diferenciar tus tests de regresión del resto usando markers de pytest. Así puedes ejecutarlos de forma independiente cuando los necesites.

En tu archivo pytest.ini registra el marker:

ini

[pytest]
markers =
    regression: pruebas de regresión
    smoke: pruebas de smoke test

Luego marca cada test de regresión con el decorador correspondiente:

python

import pytest
from playwright.sync_api import Page
from pages.login_page import LoginPage

@pytest.mark.regression
def test_login_usuario_valido(page: Page):
    login = LoginPage(page)
    login.goto()
    login.login("usuario@test.com", "password123")
    assert "dashboard" in page.url

@pytest.mark.regression
def test_login_password_incorrecta(page: Page):
    login = LoginPage(page)
    login.goto()
    login.login("usuario@test.com", "wrongpassword")
    assert "login" in page.url

@pytest.mark.regression
def test_menu_principal_visible(page: Page):
    page.goto("https://miweb.com")
    assert page.locator("nav").is_visible()

@pytest.mark.regression
def test_footer_visible(page: Page):
    page.goto("https://miweb.com")
    assert page.locator("footer").is_visible()

Para ejecutar solo los tests de regresión:

powershell

pytest -m regression

Para ejecutar todos los tests excepto los de regresión:

powershell

pytest -m "not regression"

Qué funcionalidades cubrir en una suite de regresión

No hace falta incluir todo en la suite de regresión. La clave es cubrir los flujos más críticos — los que no pueden fallar bajo ningún concepto.

En una aplicación típica la suite de regresión debería cubrir el login y logout, la navegación principal, los flujos críticos de negocio como compra o registro, las integraciones con APIs externas y las funcionalidades que han tenido bugs anteriormente.

Las funcionalidades secundarias o poco usadas pueden quedarse fuera de la regresión y testearse de forma manual o en ciclos menos frecuentes.


Cómo automatizar la regresión con GitHub Actions

El verdadero valor de las pruebas de regresión automatizadas está en ejecutarlas de forma automática en cada push al repositorio. Con GitHub Actions esto se configura en minutos.

Crea el archivo .github/workflows/regression.yml con este contenido:

yaml

name: Regression Tests

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  regression:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Instalar Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      
      - name: Instalar dependencias
        run: |
          pip install -r requirements.txt
          playwright install --with-deps
      
      - name: Ejecutar tests de regresión
        run: pytest -m regression -

---

Con esto, cada vez que hagas push a main GitHub ejecutará automáticamente todos los tests marcados como regression y te avisará si algo falla. Puedes ver cómo funciona GitHub Actions en detalle en [GitHub Actions para QA: automatiza tus tests](https://fatimaqa.com/github-actions-qa-automatizar-tests/).

Cuándo ejecutar las pruebas de regresión

Las pruebas de regresión tienen más sentido en estos momentos:

Después de cada push o pull request — es el uso más habitual con CI/CD. Antes de cada release — para confirmar que todo funciona antes de desplegar a producción. Después de corregir un bug — para verificar que la corrección no ha roto nada más. Al integrar cambios de terceros — cuando actualizas dependencias o integras una API externa.

Un ejemplo real de mi portafolio

En mi repositorio qa-suite-saucedemo tienes una suite completa de 20 tests E2E organizados con markers de smoke, regression y negative, Page Object Model y CI/CD con GitHub Actions.

Es un ejemplo real de cómo estructurar una suite de regresión profesional que puedes usar como referencia para tus propios proyectos.

Si quieres profundizar en cómo funciona el testing de regresión a nivel conceptual puedes leer pruebas manuales vs automatizadas: cuándo usar cada una o qué es el testing shift-left.

Y si necesitas implementar una suite de regresión en tu proyecto puedes ver mis servicios en fatimaqa.com

Scroll al inicio