Ir al contenido

Arquitectura Modular

Los Módulos en Testform permiten empaquetar, parametrizar y reutilizar flujos de prueba complejos (autenticación, checkout, sembrado de datos) a través de múltiples suites y proyectos, siguiendo exactamente el modelo de módulos de Terraform.


Testform ofrece dos modalidades complementarias para modularizar pruebas:

Puedes invocar un módulo directamente sobre un paso de fondo (Background:) o un escenario mediante el tag @module:

Feature: Gestión de Inventario
Background:
@module(source="./modules/auth/login.feature", scenario="Login de Administrador", variable={user: "admin", role: "SuperAdmin"})
Given que la sesión de administrador está iniciada
Scenario: Crear nuevo producto en catálogo
When el administrador registra el producto "SKU-991"
Then el stock muestra 100 unidades

Puedes registrar módulos con alias reutilizables y parámetros por defecto (pasando variables de entrada de forma directa y nativa, o mediante el bloque variable:):

main.yml
module:
auth_staging:
source: "./modules/auth/login.feature"
base_url: "${var.app_url}"
user: "staging_tester"
password: "${var.test_password}"
output:
token:
value: "${testcase.modules/auth/login.feature.@login.token}"

Testform soporta la descarga e inicialización automática de módulos alojados en repositorios Git remotos durante testform init:

module:
shared_auth:
source: "git::https://github.com/mi-org/test-modules.git//auth?ref=v1.2.0"
base_url: "https://qa.empresa.com"

El formato de URL sigue la convención estándar de Terraform:

  • Prefijo: git::https://...
  • Subdirectorio: //ruta/subdirectorio
  • Versión o Tag: ?ref=v1.2.0 o ?ref=main

Los valores exportados por un módulo hijo quedan registrados bajo el namespace del módulo (module.<nombre>.<output>):

Scenario: Consumir token generado por módulo
Given configuro el encabezado "Authorization: Bearer ${module.shared_auth.token}"
When consulto la lista de usuarios
Then el código HTTP es 200

Compartición de Políticas y Recursos en Escala Empresarial

Sección titulada «Compartición de Políticas y Recursos en Escala Empresarial»

En organizaciones con decenas o cientos de microservicios y proyectos, los módulos de Testform resuelven la redundancia permitiendo empaquetar y distribuir estándares corporativos comunes:

# main.yml (en cada uno de los proyectos de la empresa)
module:
standards:
source: "git::https://github.com/mi-empresa/testform-enterprise-standards.git?ref=v2.0"

Al ejecutar testform init, el módulo se descarga automáticamente a .testform/modules/standards/. Testform inspecciona e integra de forma nativa:

  1. Políticas de Calidad (.testform/modules/**/policies/*.js): Cualquier regla o compuerta de gobernanza corporativa se activa automáticamente en todos los proyectos.
  2. Plantillas de Recursos (.testform/modules/**/resources/*.js): Mapeos de Gherkin a Jira, Azure DevOps o APIs internas.
  3. Backends y Providers Personalizados: Controladores de almacenamiento y conexión compartidos entre toda la organización.