dev-tools 4 min read

Step CI - Open-Source API Test Automation Framework

Step CI is an open-source API testing framework with YAML, JSON and JavaScript workflows. Test REST, GraphQL, gRPC, SOAP and tRPC APIs in CI/CD.

By
Share: X in
Step CI - Open-source API Testing Framework

TL;DR

TL;DR: Step CI is an open-source, language-agnostic API testing framework that runs YAML/JSON/JS workflows against REST, GraphQL, gRPC, SOAP and tRPC endpoints — self-hosted, CI/CD-ready.

Source and Accuracy Notes

⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.

What Is Step CI?

Step CI is an open-source API Quality Assurance framework built for developers who want to define API tests as code. Instead of relying on GUI-based tools like Postman or Insomnia, you write test workflows in YAML, JSON, or JavaScript and run them via CLI or directly in your CI/CD pipeline.

From the project README:

Step CI is an open-source API Quality Assurance framework

  • Language-agnostic. Configure easily using YAML, JSON or JavaScript
  • REST, GraphQL, gRPC, tRPC, SOAP. Test different API types in one workflow
  • Self-hosted. Test services on your network, locally and CI/CD
  • Integrated. Play nicely with others

The framework has 1,860 GitHub stars and is actively maintained.

Setup Workflow

Step 1: Install the CLI

Using Node.js (npm):

npm install -g stepci

Note: Make sure you are using the LTS version of Node.js

Using Homebrew:

brew install stepci

Step 2: Create a Workflow

Create a workflow.yml file:

version: "1.1"
name: Status Check
env:
  host: example.com
tests:
  example:
    steps:
      - name: GET request
        http:
          url: https://${{env.host}}
          method: GET
          check:
            status: /^20/

You can also use JSON format:

{
  "version": "1.1",
  "name": "Status Check",
  "env": { "host": "example.com" },
  "tests": {
    "example": {
      "steps": [{
        "name": "GET request",
        "http": {
          "url": "https://${{env.host}}",
          "method": "GET",
          "check": { "status": "/^20/" }
        }
      }]
    }
  }
}

Step 3: Run the Workflow

stepci run workflow.yml

Output on success:

PASS  example

Tests: 0 failed, 1 passed, 1 total
Steps: 0 failed, 1 passed, 1 total
Time:  0.559s, estimated 1s

Workflow passed after 0.559s

Deeper Analysis

Supported API Protocols

Step CI supports testing multiple API types within a single workflow:

  • REST — standard HTTP requests with full response validation
  • GraphQL — query and mutation testing
  • gRPC — protocol buffer-based API testing
  • tRPC — type-safe API testing
  • SOAP — XML-based web service testing

Workflow Features

Chaining requests with captures and variables:

tests:
  auth_flow:
    steps:
      - name: Login
        http:
          url: https://api.example.com/login
          method: POST
          body:
            email: [email protected]
            password: testpass
          capture:
            json: "$.token"
            variable: access_token
      - name: Get Profile
        http:
          url: https://api.example.com/profile
          method: GET
          headers:
            Authorization: "Bearer ${{variables.access_token}}"

Data-driven testing with fake data generation:

tests:
  validation:
    steps:
      - name: Submit form
        http:
          url: https://api.example.com/users
          method: POST
          body:
            name: "{{ fake('firstName') }} {{ fake('lastName') }}"
            email: "{{ fake('email') }}"

Import from Postman and Insomnia

Step CI supports importing existing collections:

Practical Evaluation Checklist

  • Works with Node.js (library mode) or standalone CLI
  • Docker runner available: docker run stepci/stepci
  • GitHub Actions integration via official action
  • GitLab CI and Jenkins integrations documented
  • Jest plugin available for unit test integration
  • Parallel test execution supported
  • Self-hosted runner — no cloud dependency for test execution
  • Pricing: Open-source (free forever) + optional Support Plan with SLA

Security Notes

Step CI runs entirely self-hosted. Your API credentials and test data never leave your infrastructure. Tests can be run against local network services, localhost, or CI/CD environments without routing traffic through third-party servers.

The open-source runner and CLI are free under the Mozilla Public License 2.0 (MPL-2.0).

FAQ

Q: How is this different from Postman or Insomnia? A: Postman and Insomnia are GUI-based API clients. Step CI is a code-first, CLI-driven framework where tests are defined as YAML/JSON/JS files and can be version-controlled alongside your codebase.

Q: Can I use this in GitHub Actions? A: Yes. Step CI has an official GitHub Action and can also be run via Docker in any CI/CD pipeline.

Q: Does it support performance and load testing? A: Yes. The framework includes performance testing capabilities alongside functional API testing.

Conclusion

Step CI fills the gap between GUI-based API clients (Postman, Insomnia) and code-only testing libraries. Its YAML-first approach makes test workflows readable and version-controllable, while support for multiple API protocols covers most modern API architectures. The self-hosted, open-source model is particularly attractive for teams with strict data residency or security requirements.

For more, see the official documentation or try the online playground.