Comments 4
Рассматривали ли вы использование Hypothesis для генерации данных или других аспектов тестирования (например минимизации найденной ошибки)? В нем есть довольно много разных "стратегий" для генерации данных, включая строки, числа, списки, даты и тому подобное. Кроме этого они легко сочетаются друг с другом и позволяют генерировать практически произвольно сложные структуры данных.
Например, Schemathesis использует этот фреймворк в том числе и для того чтобы генерировать входные данные по Swagger 2.0 / Open API 3.0 / GraphQL схемам (а так же и данные которые не подходят под схемы).
Ну и третье, но, пожалуй, самое важное: ни один из таких инструментов не решает вопрос подготовки тестовых данных…
А что вы имеете ввиду под подготовкой тестовых данных? Если именно умение генерировать данные, то кроме вышеупомянутого инструмента, REST-ler и Cats (а так же некоторые другие проекты) тоже умеют генерировать тестовые данные без использования явных примеров из схем. Правда, они их не всегда умеют экспортировать их напрямую, а используют сразу при запуске инструмента.
Начну со второго вопроса. Под генерацией данных понимается не столько подбор или перебор конкретных значений (концепция и получившийся фреймворк позволяют использовать разные инструменты для этого) сколько вопрос создания всех необходимых сущностей в приложении. На пустой базе как правило нельзя создать произвольный объект. Допустим у вас есть endpoint для включения пользователя в группу. Для его работы надо заранее создать пользователя и группу. Именно этот момент и был автоматизирован.
Теперь по поводу Hypothesis. Это действительно мощный инструмент. Однако он решает немного другую задачу и по своей сути ближе к фаззингу, нежели к валидации корректности работы API в целом. На данный момент мы не применяли его на больших проектах. Однако планируем сделать в обозримом будущем.
Пишем генератор API тестов и данных для них