TL;DR

  • El pool de recursos se ha mejorado significativamente para pruebas API stateful, capturando más identificadores de diversas respuestas.
  • La lógica de generación de datos para coverage y fuzzing ha sido refinada, reduciendo falsos positivos y aumentando la precisión de las pruebas.
  • Nuevas funcionalidades para GraphQL fuzzing, incluyendo mutaciones de productor y escenarios de operaciones encadenadas.

Key Changes

Schemathesis v4.18.0 introduce mejoras específicas en varias áreas.

Nuevas Funcionalidades:

  • Resource Pool y Captura de IDs: Capacidades expandidas para capturar identificadores de respuestas GET tipo “map-by-id”, todos los elementos de listas y wrappers personalizados. Esto enriquece las pruebas stateful al proporcionar una fuente de datos más completa. Los campos foreign-key anidados en los request bodies ahora también se benefician de los overlays del pool.
  • Pruebas Adaptativas: La herramienta ahora refina la generación a partir de errores 4xx para numerosos frameworks (ej., Spring, Pydantic, DRF). También detecta requisitos de autenticación en tiempo de ejecución de respuestas 401/403 y omite operaciones que consistentemente devuelven 405 Method Not Allowed, mejorando la eficiencia de las pruebas.
  • Soporte GraphQL: El GraphQL fuzzing dedicado ahora despacha mutaciones de productor primero y reutiliza los IDs capturados. Una nueva fase stateful permite escenarios de operaciones encadenadas.
  • Configuración: Se añadió extra-data-sources para ejemplos y coverage, y se documentó el JSON Schema para schemathesis.toml para autocompletado en editores.

Correcciones y Mejoras:

  • Fase de Coverage: Numerosas correcciones abordan problemas con las reescrituras de pattern, el manejo de minProperties, ramas oneOf/anyOf, campos readOnly y la generación de números límite (ej., multipleOf, exclusiveMinimum/exclusiveMaximum). Esto asegura una generación de casos de prueba más precisa y válida.
  • Fiabilidad del Resource Pool: Se corrigieron problemas con parámetros de path no coincidentes, reconocimiento de foreign-keys anidados, manejo de esquemas compuestos (allOf/oneOf/anyOf) y la prevención de reutilizar identificadores de recursos eliminados.
  • Validación e Informes: Se resolvieron los falsos positivos para negative_data_rejection y response_headers_conformance. Los informes JUnit y Allure ahora reflejan con precisión los resultados de las pruebas, incluso cuando las fases iniciales no tienen ejemplos inline.

Impacto para Equipos QA

Esta actualización hace que las pruebas API stateful sean más fiables y efectivas al mejorar la captura de identificadores y la gestión de recursos. Los ingenieros de QA se beneficiarán de una generación de datos de prueba más precisa, menos falsos positivos en la validación y un soporte mejorado para APIs GraphQL, lo que lleva a ciclos de prueba más eficientes y confiables.