/stepci

Automated API Testing and Quality Assurance

Primary LanguageTypeScriptMozilla Public License 2.0MPL-2.0

Step CI CLI Demo

Welcome

Step CI is an open-source API Quality Assurance framework

  • Language-agnostic. Configure easily using YAML
  • REST, GraphQL, gRPC, tRPC, SOAP. Test different API types in one workflow
  • Self-hosted. Test services on local network
  • Integrated. Play nicely with others

Read the Docs

Try the Online Playground

Join us on GitHub Discussions

Get started

  1. Install the CLI

    Using Node.js

    npm install -g stepci

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

    Using Homebrew

    brew install stepci
  2. Create example workflow

    workflow.yml

    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/

    Note: You can also also use JSON format to configure your workflow

  3. Run the workflow

    stepci run workflow.yml
    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
    

Documentation

Documentation is available on docs.stepci.com

Examples

You can find example workflows under examples/

Community

Join our community on GitHub Discussions

Contributing

As an open-source project, we welcome contributions from the community. If you are experiencing any bugs or want to add some improvements, please feel free to open an issue or pull request

License

The source code is distributed under Mozilla Public License terms

Privacy

By default, the CLI collects anonymous usage data, which includes:

  • Unique user ID
  • OS Name
  • Node Version
  • CLI Version
  • Command (stepci run, stepci generate)
  • Environment (Local, Docker, CI/CD)

Note: The usage analytics can be disabled by setting STEPCI_DISABLE_ANALYTICS environment variable