Plugins
Standard Plugins
Drift comes bundled with several core plugins that provide essential testing, validation, and reporting capabilities out of the box.
Plugins for message-based testing are used together. An AsyncAPI test file declares the asyncapi plugin, one transport plugin, and the json plugin.
OpenAPI (oas)
The foundational plugin for spec-first testing. It parses OpenAPI 3.0 and 3.1 documents to resolve endpoints, schemas, and examples.
Specification format | Support status |
|---|---|
Swagger 2.0 | Supported |
OpenAPI 3.0 | Supported |
OpenAPI 3.1 | Supported |
OpenAPI 3.2 | Not supported |
Swagger earlier than 2.0 | Not supported |
Automatic validation of response bodies against JSON schemas.
Support for
source:method:pathtargeting whenoperationIdis missing.See Also: OpenAPI (OAS)
AsyncAPI (asyncapi)
The foundational plugin for message-based testing. It parses AsyncAPI 3.x documents to resolve operations, channels, message schemas, and correlation rules, then plans how each interaction should be executed.
Specification format | Support status |
|---|---|
AsyncAPI 3.1 | Supported |
AsyncAPI 3.0 | Supported |
AsyncAPI 2.x | Not supported |
See Also: AsyncAPI Plugin
Automatic selection of the execution mode from the operation action and your test inputs.
Validation of captured messages against payload and header schemas.
Use with a transport plugin (
kafkaoraws-messaging) and thejsonplugin.
JSON (json)
Provides specialized validation for JSON payloads.
Media Type Support: Handles application/json payloads defined in your API specification.
Schema Support: Powers deep property and type checking for API responses.
Kafka (kafka)
Provides Apache Kafka transport for AsyncAPI operations.
Use Case: Use this plugin when your AsyncAPI document declares the kafka protocol. Drift publishes to and consumes from real Kafka topics.
Supports: Asynchronous and request/reply interactions.
See Also: Kafka Plugin
AWS Messaging (aws-messaging)
Provides Amazon SNS and Amazon SQS transport for AsyncAPI operations.
Use Case: Use this plugin when your AsyncAPI document declares the sns or sqs protocol. Works against AWS or a local emulator such as LocalStack.
Supports: Asynchronous interactions only. Request/reply is not available on SNS or SQS.
See Also: AWS Messaging Plugin
XML (xml)
Provides payload support for XML request and response bodies.
Media Type Support: Handles
application/xmlpayloads defined in your API specification.Use Case: Use this plugin when your API exchanges XML bodies that Drift needs to send or validate.
See Also: XML Plugin
Form URL Encoded (form-urlencoded)
Provides payload support for HTML form-style request bodies.
Media Type Support: Handles
application/x-www-form-urlencodedpayloads.Use Case: Use this plugin when an operation expects form fields instead of JSON.
See Also: Form URL Encoded Plugin
Data (data)
Manages the loading and injection of external datasets into your test cases.
Dataset Management: Resolves references like
${product:products.product10.id}fromdrift-dataset-filesources.Dynamic Generation: Supports advanced expressions like
notIn()to create unique test data on the fly.See Also: Data Plugin
JUnit Reporter (junit-output)
Generates standardized XML reports for integration with CI/CD tools like GitHub Actions, Jenkins, or GitLab.
Format: Produces
testsuiteandtestcaseelements compatible with universal JUnit XML schemas.CI Integration: Allows build systems to visualize pass/fail counts and execution times natively.
gRPC (grpc)
Provides support for gRPC services with protobuf payloads.
Media Type Support: Handles
application/grpc+proto,application/grpcandapplication/x-protobufUse Case: Use this plugin when you need to test gRPC services
See Also: gRPC Plugin
MCP (mcp)
Provides support for MCP servers.
Media Type Support: Handles
application/jsonbodiesNetwork Support: Supports streamable HTTP via SSE and stdio
Use Case: Use this plugin when you need to test MCP Servers
See Also: MCP Plugin