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, что приведет к более эффективным и надежным циклам тестирования.
