TL;DR

  • Значительное повышение производительности для сложных схем и рекурсивных ссылок.
  • Добавлены новые опции конфигурации для переменных сервера и динамических полезных нагрузок аутентификации.
  • Улучшена генерация негативных тест-кейсов для различных ограничений и типов схем.

Ключевые Изменения

Schemathesis v4.20.0, выпущенный 24 мая 2026 года, приносит заметные улучшения для тестирования API. Это минорное обновление сосредоточено на оптимизации производительности, расширении гибкости конфигурации и уточнении генерации тестовых данных.

Новые Возможности:

QA-инженеры получают больше контроля над тестовыми средами благодаря возможности переопределять значения по умолчанию для переменных сервера через [servers.variables] в конфигурации. Это упрощает тестирование различных API-сред. Кроме того, динамическая аутентификация теперь поддерживает полезные нагрузки в формате form-encoded через payload_content_type, что повышает гибкость для различных схем аутентификации.

Улучшения Производительности:

Эта версия обеспечивает значительное ускорение, особенно для сложных схем OpenAPI/Swagger. Ожидается сокращение времени фазы покрытия примерно на 50% для схем с большим количеством определений. Это достигается за счет кэширования повторяющихся вычислений и более быстрой сборки схем со ссылками на рекурсивные определения. Эти оптимизации напрямую приводят к более быстрым циклам выполнения тестов.

Критические Исправления:

Обновление устраняет несколько проблем, связанных с генерацией тестовых данных и интерпретацией схем. Ключевые исправления включают:

  • Корректное заполнение вложенных шаблонов объектов, на которые ссылаются через $ref, предотвращая генерацию null или пустых объектов.
  • Учет объявлений servers[] на уровнях path-item и операции, обеспечивая правильное разрешение конечных точек.
  • Улучшенная генерация негативных тест-кейсов для различных ограничений схемы, таких как minLength/maxLength для строк с pattern или format (например, email, uuid), а также нарушений enum/const. Это приводит к более точным и разнообразным сценариям негативного тестирования.
  • Обеспечение Content-Type: application/json для JSON-сериализованных вложенных частей multipart/form-data.
  • Генерация непустой алфавитной строки (например, AAA) в качестве негативного типа для нестроковых параметров, предотвращая неожиданные коллапсы.
  • Исправления ложных срабатываний negative_data_rejection для целочисленных записей enum.

Подробный список изменений доступен в официальном changelog Schemathesis.

Влияние на QA-команды

Schemathesis v4.20.0 напрямую приносит пользу QA-командам, ускоряя выполнение API-тестов, особенно для больших и сложных схем. Повышенная точность в генерации негативных тест-кейсов означает более тщательную проверку надежности API, снижая вероятность ошибок в граничных случаях. Новые опции конфигурации также обеспечивают большую адаптивность для различных тестовых сред и методов аутентификации.