
Как мы превратили Swagger из документации в двигатель API-автотестов
Tanki_sleva 1 минуту назад Как мы превратили Swagger из документации в двигатель API-автотестов Средний 22 мин 2 Блог компании ВкусВилл Тестирование IT-систем * Искусственный интеллект Кейс Всем привет! Меня зовут Олег...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Tanki_sleva 1 минуту назад Как мы превратили Swagger из документации в двигатель API-автотестов Средний 22 мин 2 Блог компании ВкусВилл Тестирование IT-систем * Искусственный интеллект Кейс Всем привет! Меня зовут Олег Малышев. Я один из лидеров стека тестирования в компании «ТехВилл» Мы продолжаем разговор о том, как применять ИИ в тестировании.
В этой статье расскажу, как мы пишем API-автотесты с помощью OpenAPI Generator, Cursor/Claude Code и автоматически считаем покрытие по Swagger через swagger-coverage. Раньше я уже записывал большое двухчасовое видео по Cursor, где показывал в том числе, как мы генерируем автотесты. Но с тех пор подход немного изменился: мы сильнее завязались на OpenAPI-контракт, добавили Swagger Coverage, JSON-отчёты для LLM и специальные skills для генерации недостающих тестов.
Технические детали
Зачем всё это понадобилосьОдна из типичных проблем API-автотестов: тесты живут отдельно от API-контракта. QA руками собирает URL, руками пишет JSON, руками парсит ответ. Swagger при этом существует где-то рядом: аналитики и разработчики его обновляют, тесты вроде бы проверяют API, но прямой связи между ними нет.
Мы решили сделать Swagger не документацией «для галочки», а источником правды для API-тестов. На примере нашего сервиса Cohorts схема выглядит так:cohorts. yaml ↓OpenAPI Generator + Mustache templates ↓cohorts.
* ↓JUnit + RestAssured tests ↓Swagger Coverage ↓HTML / JSON отчёт покрытия ↓LLM-skills для генерации недостающих тестовТесты используют не ручные given(). а generated-клиент и generated-модели, созданные из OpenAPI-спецификации. Как Swagger превращается в Java-клиентВозьмём endpoint создания когорты.
Отраслевые последствия
В Swagger он описан как POST /api/v1/cohort. В OpenAPI-файле есть два уровня описания. Первый уровень -- paths.
Он говорит, какой endpoint вызвать, каким HTTP-методом, какой operationId у операции, какую request-схему нужно отправить и какую response-схему ожидаем получить. /api/v1/cohort: post: tags: - cohorts summary: Cоздание пустой когорты operationId: createCohort requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateCohortsRq' responses: 201: description: Успешно content: application/json: schema: $ref: '#/components/schemas/CreateCohortsRs'Второй уровень - components. Там описано, из каких полей состоят DTO-модели, на которые endpoint ссылается через $ref.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





