bdd-regression-test-generator
bdd-regression-test-generator
Автономный агент, который анализирует конечные точки REST API и контракты сервисов OpenAPI/Swagger для генерации:
BDD-спецификации Gherkin (файлы
.feature), описывающие все основные сценарии и пограничные случаи.Скрипты регрессионного тестирования на TypeScript (готовые к Jest + Playwright), которые можно запускать против реальных сервисов.
Он предоставляет два интерфейса:
Интерфейс | Описание |
CLI |
|
MCP-сервер | Сервер Model Context Protocol, который можно подключить к любому MCP-совместимому хосту (например, IBM Bob, Claude Desktop) |
Возможности
Разбирает контракты OpenAPI 3.x и Swagger 2.0 (JSON или YAML).
Извлекает все пути, HTTP-методы, параметры, тела запросов и схемы ответов.
Генерирует один файл
.featureдля каждой группы тегов конечных точек.Генерирует один файл
*.spec.tsдля каждой группы тегов конечных точек с полностью типизированными тестовыми сценариями Jest.Поддерживает внедрение пользовательского базового URL на этапе генерации.
MCP-сервер предоставляет инструменты
analyze_contract,generate_gherkinиgenerate_tests.
Related MCP server: Swagger Testcase MCP
Установка
npm install
npm run buildЧтобы использовать в качестве глобального CLI после сборки:
npm linkИспользование CLI
# Generate both Gherkin and Jest tests from an OpenAPI YAML spec
bdd-gen generate --input ./petstore.yaml --output ./generated --baseUrl https://api.example.com
# Generate only Gherkin feature files
bdd-gen generate --input ./petstore.json --output ./generated --only gherkin
# Generate only Jest test scripts
bdd-gen generate --input ./petstore.json --output ./generated --only jest
# Analyze a contract and print a summary (no file generation)
bdd-gen analyze --input ./petstore.yamlПараметры CLI
Параметр | Псевдоним | Описание | По умолчанию |
|
| Путь к файлу контракта OpenAPI/Swagger | обязательно |
|
| Каталог, в который будут записаны сгенерированные файлы |
|
|
| Базовый URL для встраивания в сгенерированные тестовые файлы |
|
| Генерировать только | оба | |
|
| Включить подробное логирование |
|
MCP-сервер
Запустите MCP-сервер с помощью:
npm run mcpСервер регистрирует следующие инструменты:
analyze_contract
Разбирает контракт OpenAPI/Swagger из пути к файлу или сырой строки JSON/YAML.
Входные данные:
{ "source": "./petstore.yaml" }Выходные данные: Структурированный JSON-объект ContractSummary с путями, методами, параметрами и схемами.
generate_gherkin
Генерирует содержимое Gherkin .feature из разобранного контракта.
Входные данные:
{
"source": "./petstore.yaml",
"outputDir": "./generated"
}Выходные данные: Список путей записанных файлов .feature.
generate_tests
Генерирует тестовые скрипты TypeScript Jest из разобранного контракта.
Входные данные:
{
"source": "./petstore.yaml",
"outputDir": "./generated",
"baseUrl": "https://api.example.com"
}Выходные данные: Список путей записанных файлов .spec.ts.
Структура проекта
bdd-regression-test-generator/
├── src/
│ ├── parser/
│ │ └── contract-analyzer.ts # OpenAPI/Swagger parser and extractor
│ ├── generator/
│ │ ├── gherkin-builder.ts # Gherkin .feature file builder
│ │ └── jest-builder.ts # TypeScript Jest spec builder
│ ├── mcp/
│ │ └── server.ts # MCP server exposing generation tools
│ └── cli.ts # Commander-based CLI entry point
├── tests/
│ └── generator.test.ts # Unit tests for parser and generators
├── dist/ # Compiled output (after build)
├── package.json
├── tsconfig.json
└── README.mdЗапуск тестов
npm testС покрытием:
npm run test:coverageПример: сгенерированный Gherkin
Feature: Pets
Background:
Given the API base URL is "https://api.example.com"
Scenario: GET /pets - list all pets - success
Given I have valid authentication credentials
When I send a GET request to "/pets"
Then the response status code should be 200
And the response body should match the "PetList" schema
Scenario: GET /pets - list all pets - unauthorized
Given I have invalid or missing authentication credentials
When I send a GET request to "/pets"
Then the response status code should be 401Пример: сгенерированный тест Jest
import axios from 'axios';
const BASE_URL = 'https://api.example.com';
describe('Pets', () => {
describe('GET /pets', () => {
it('should return 200 for a valid request', async () => {
const response = await axios.get(`${BASE_URL}/pets`);
expect(response.status).toBe(200);
});
});
});Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for AI access to Swagger by SmartBear.
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
- TypeshipOAuthdev.typeship
Generate a typed SDK, CLI, and MCP server from any OpenAPI or GraphQL spec, and keep them current.
327 dev tools via REST API and MCP. Generate Dockerfiles, schemas, K8s, APIs, and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server for the comprehensive analysis of Swagger 2.0 and OpenAPI 3.x contracts. It allows users to extract detailed information about endpoints, request/response schemas, parameters, and security configurations from API documentation.-
- AlicenseAqualityFmaintenanceMCP server for API test case generation from Swagger/OpenAPI specs. Parses Swagger 2.0 and OpenAPI 3.x, generates test cases across 8 categories (positive, negative, boundary, auth, security, idempotency, pagination, business logic), and exports to Postman, TestRail, Allure, k6, pytest, Gherkin, and CSV. Supports internal corporate APIs with auth headers. Auto-saves export files to your working di1010 npm2MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that automates Playwright-based UI and API testing, supporting test case generation from requirements or API specs, and execution with detailed reports.4 npm1MIT
- AlicenseNot gradedqualityCmaintenanceHigh-performance MCP server for OpenAPI specifications that parses specs, diffs versions, tracks dependencies, and generates code (TypeScript, Rust, Python).3 npm2MIT