Write expressive Gherkin tests against REST APIs, databases, and any backend — no glue code, no framework lock-in, no matter what your application is built with.
No framework to integrate, no agent to configure. Download, point at your app, run.
Download the distribution ZIP, unzip it anywhere and add the bin/ directory to your PATH.
$ unzip azertio-cli-1.2.2-dist.zip $ export PATH="$PATH:$(pwd)/azertio-cli-1.2.2/bin" $ azertio version azertio 1.2.2
Create an azertio.yaml in your project root. Declare the plugins you need — Azertio fetches them at startup.
plugins: - gherkin - rest configuration: rest: baseURL: 'https://api.example.com'
Create a .feature file. Plain language, no glue code — each step is resolved by the active plugins.
Feature: User API Scenario: List users returns 200 When I make a GET request to "users" Then the HTTP status code is equal to 200 And the response body contains: """json [{"id": 1}] """
Execute from the terminal. Azertio resolves plugins, builds the test plan and runs it.
Full documentation →The VS Code extension integrates with GitHub Copilot, Claude, GPT-4o, and any other language model available in VS Code to accelerate feature authoring — from inline completions to full file generation.
As you type a step line in a .feature file, the extension suggests the next step drawn from the real index of available steps in your project — not generic templates.
Describe what you want to test in plain language. Azertio generates a complete, ready-to-run Gherkin feature file — including correct structural keywords for your chosen locale.
Point Azertio at a Swagger / OpenAPI URL and it reads the endpoints and generates a full feature file covering the API surface automatically.
Works with any language model registered in VS Code. See the VS Code extension →
A lightweight runtime with a powerful extension model. Bring your own plugins, connect any backend, run anywhere.
Every capability — REST, database, Gherkin parsing — is a first-class plugin resolved from Maven at runtime. No classpath wrestling.
Tests are plain feature files written in a domain-specific language. Non-technical stakeholders can read and review them directly.
Connect to MySQL, PostgreSQL, SQLite, H2, DuckDB or any JDBC driver — just add it as a runtime dependency in azertio.yaml.
First-class steps for HTTP requests, response assertion, JSON path extraction, and header validation. No glue code required.
Any step can be turned into a load benchmark with configurable concurrency and iteration count. Statistics are attached to the execution report.
Browse plans, inspect execution trees, view attachments and re-run past executions — all from the editor, via a JSON-RPC language server.
# language: en Feature: JSONPlaceholder Posts API @ID-1 @GET Scenario: List all posts When I make a GET request to "posts" Then the HTTP status code is equal to 200 And the response body contains: """json [{"userId": 1, "id": 1}] """ @ID-10 @POST @GET Scenario: Create a post and get it after When I make a POST request to "posts" with body: """json { "title": "My new post", "body": "Content of my new post.", "userId": 1 } """ Then the HTTP status code is equal to 201 And I store the value of field 'id' from the response body into variable id When I make a GET request to 'posts/${id}' Then the HTTP status code is 200 @ID-11 @GET Scenario: Measure response time Given benchmark mode is enabled with 200 executions and 10 threads When I make a GET request to "posts/1" Then the benchmark P95 response time (ms) is greater than 2
Write scenarios in plain language. Azertio matches each line to a step implementation at runtime — zero boilerplate, zero glue code.
Run any subset of tests with boolean tag expressions: GET and not slow
Set up context once per feature with Background — no test setup duplication.
Store values from one step and inject them into the next using ${'{'}name{'}'} interpolation.
Steps can be written in English, Spanish, or a compact DSL alias — all from the same plugin.
Declare in azertio.yaml → resolved from Maven at runtime
Loads .feature files and assembles a structured test plan. Supports Gherkin syntax and the compact DSL dialect.
Steps for HTTP requests (GET, POST, PUT, DELETE), response assertions, JSON path extraction and header checks. Zero boilerplate.
Execute SQL queries, assert row counts and table contents against any JDBC datasource. Bring your own driver as a runtime dependency.
Generates a self-contained HTML execution report — donut charts, collapsible result tree, step-level error details, and a configurable accent color. Single file, no external dependencies.
Generates a paginated PDF execution report with cover page, statistics and full result tree. Ready to share or archive after each run.
Publish and consume JMS messages in Gherkin. Subscribe before an action, then assert the resulting message. Works with ActiveMQ, Artemis, RabbitMQ, IBM MQ and any JMS-compliant broker — just add the provider JAR.
Implement StepProvider and publish to Maven. Azertio resolves and loads it at startup — no forks, no rebuilds.
The Azertio extension connects to a local JSON-RPC server and gives you a full testing workflow inside VS Code — no terminal juggling required.
Browse every past run with its date, duration and overall result. Each execution is stored locally and always available to review.
Drill down from test plan → suite → scenario → step. Each node shows its individual pass/fail status and execution time.
Steps that produce data — CSV query results, JSON responses — are saved as attachments and opened directly from the result tree.
Re-execute any past run against its original test plan and profile with a single button — no need to reconfigure anything.
Inline suggestions as you type in .feature files, powered by GitHub Copilot or any VS Code language model. Suggestions are based on the steps actually available in your project.
Generate a complete Gherkin feature file from a plain-text description, or from an OpenAPI/Swagger spec. Supports multiple languages with correct structural keywords.
Honest, detailed comparisons against the most popular Java API testing tools.
Both use .feature files and support REST + DB testing, but differ in architecture, philosophy, and extensibility.
The most common Java BDD stack. Powerful but ceremonious — see where each approach shines and where the boilerplate adds up.
Read comparison →The most widely used API tool. Great for exploration, but version-controlled automated testing is a different game.
Read comparison →Azertio is actively evolving. Core features work, but APIs may change and there is plenty of room to grow. If you try it out, your feedback genuinely matters.
Open an issue describing what you did, what you expected, and what actually happened.
Open an issue explaining your use case — even a rough idea is worth sharing.
Open an issue first to align on the approach, then submit a pull request. All participation is welcome.