TL;DR

  • Пул ресурсов значительно улучшен для stateful API тестирования, захватывая больше идентификаторов из разнообразных ответов.
  • Логика генерации данных для coverage и fuzzing доработана, уменьшая ложные срабатывания и повышая точность тестов.
  • Новые функции для GraphQL fuzzing, включая мутации производителя и сценарии связанных операций.

Основные Изменения

Schemathesis v4.18.0 вносит целенаправленные улучшения в нескольких областях.

Новые Функции:

  • Пул Ресурсов и Захват ID: Расширены возможности захвата идентификаторов из GET-ответов типа “map-by-id”, всех элементов списков и пользовательских оберток. Это улучшает stateful тестирование, предоставляя более богатый источник данных. Вложенные поля foreign-key в телах запросов теперь также используют наложения пула.
  • Адаптивное Тестирование: Инструмент теперь уточняет генерацию из 4xx ошибок для множества фреймворков (например, Spring, Pydantic, DRF). Он также обнаруживает требования к аутентификации во время выполнения из ответов 401/403 и пропускает операции, постоянно возвращающие 405 Method Not Allowed, повышая эффективность тестирования.
  • Поддержка GraphQL: Специализированный GraphQL fuzzing теперь сначала отправляет мутации производителя и повторно использует захваченные ID. Новая stateful фаза позволяет создавать сценарии связанных операций.
  • Конфигурация: Добавлены extra-data-sources для примеров и coverage, а также документирована JSON Schema для schemathesis.toml для автодополнения в редакторах.

Исправления и Улучшения:

  • Фаза Coverage: Многочисленные исправления касаются проблем с перезаписью pattern, обработкой minProperties, ветвей oneOf/anyOf, полей readOnly и генерацией граничных чисел (например, multipleOf, exclusiveMinimum/exclusiveMaximum). Это обеспечивает более точную и валидную генерацию тестовых случаев.
  • Надежность Пула Ресурсов: Исправлены проблемы с несоответствующими параметрами пути, распознаванием вложенных foreign-key, обработкой составных схем (allOf/oneOf/anyOf) и предотвращением повторного использования удаленных идентификаторов ресурсов.
  • Валидация и Отчеты: Устранены ложные срабатывания для negative_data_rejection и response_headers_conformance. Отчеты JUnit и Allure теперь точно отражают результаты тестов, даже если начальные фазы не содержат встроенных примеров.

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

Это обновление делает stateful API тестирование более надежным и эффективным за счет улучшения захвата идентификаторов и управления ресурсами. Инженеры по QA получат выгоду от более точной генерации тестовых данных, меньшего количества ложных срабатываний при валидации и расширенной поддержки GraphQL API, что приведет к более эффективным и надежным циклам тестирования.