Steply
May 7, 2026 · View on GitHub
Steply is a CLI tool to validate APIs, databases, Kafka messages, and more.
✨ Define the outcome, and Steply generates and executes the test automatically!
- Automate BDD-style tests or run manual validations using simple JSON or YAML — no coding required.
- Store tests in Git and easily manage manual tests, regression suites, and integration tests.
See examples.
AI Prompt (example)
Auto Generate Scenarios by Claude Code or CoPilot or Others:
Write a Zerocode scenario that conforms to
schema/zerocode-scenario-schema.jsonfor<your API testing idea>. Use theassertionsblock (notverify) and include retry of 3 attempts with 500ms delay.
Quick Start
Laptop or PC:
- Step-1: Install Steply (In your laptop or PC) from "Install" section below.
- Step-2: Clone the examples repo and then do
cd steply-examples. - Step-3: Run a test or test suite using the run command and verify the PASS/FAIL result at the concole.
- Also see
/targetfor reports & logs.
- Also see
CI CD:
- Step-1: Push your test scenarios and envs to your Git repo. Ignore the
/target(results) folder in.gitignore. - Step-2: Configure the CI workflow (see the Install section below).
- Step-3: Trigger the workflow and check the Job console for PASS/FAIL status at the console.
- Also see
/targetfor reports & logs(or look forArtifactsafter CI job completes).
- Also see
Install
Mac Arm / Mac Intel / Linux / Ubuntu / VPS / CI CD Workflow
curl -fsSL https://raw.githubusercontent.com/QABEES/steply/main/scripts/install.sh | bash
Example Step ◀ (Click to expand)
Expects Java 17+ to be available on the PATH. If not found, the script will attempt to install it automatically.
CI (GitHub Actions / GitLab Pipeline / Linux) — requires Java 17:
Add the following steps to your CI workflow on Ubuntu/Linux.
(This is a GitHub Actions step. A similar step can go into a GitLab CI/CD Pipeline or Jenkins job.)
- name: Set up Java 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Install Steply
run: |
curl -fsSL https://raw.githubusercontent.com/QABEES/steply/main/scripts/install.sh | bash
echo "$HOME/.local/bin" >> $GITHUB_PATH
Windows OS
Follow the Manual Install (Windows OS) steps below.
Manual Install (Windows OS)
Step 1 — Download the zip
Go to the Steply Releases page and download the no-jre zip for your target release, e.g.:
steply-20260425.01-no-jre.zip
Step 2 — Unzip Open PowerShell and run:
Expand-Archive -Path "$env:USERPROFILE\Downloads\steply-20260425.01-no-jre.zip" -DestinationPath "$env:USERPROFILE\steply"
Step 3 — Ensure Java 17+ is available Check your Java version in PowerShell:
java -version
Must be 17 or higher. If not installed, download from adoptium.net and install.
Then set JAVA_HOME permanently (run once in PowerShell as Administrator):
[System.Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-17", "Machine")
Step 4 — Add Steply to PATH
Set PATH permanently (run once in PowerShell as Administrator):
$current = [System.Environment]::GetEnvironmentVariable("PATH", "Machine")
[System.Environment]::SetEnvironmentVariable("PATH", "$env:USERPROFILE\steply\bin;$current", "Machine")
Close and reopen PowerShell for the changes to take effect.
Step 5 — Verify
steply --version
Manual Install (Mac / Linux / Unix)
Step 1 — Download the zip
Go to the Steply Releases page and download the no-jre zip for your target release, e.g.:
steply-20260425.01-no-jre.zip
Step 2 — Unzip
unzip steply-20260425.01-no-jre.zip -d ~/steply
Step 3 — Ensure Java 17+ is available
Check that JAVA_HOME points to a Java 17+ installation:
java -version # must be 17 or higher
echo $JAVA_HOME # should not be empty
If JAVA_HOME is not set, set it in your shell profile (e.g. ~/.zshrc or ~/.bashrc):
export JAVA_HOME=/path/to/your/java17
Step 4 — Add Steply to PATH
export PATH="$HOME/steply/bin:$PATH"
Add the same line to your shell profile so it persists across sessions, then reload:
source ~/.zshrc # or source ~/.bashrc
Step 5 — Verify
steply --version
Run a test
steply --scenario tests/get_user_api.json --target-env env/sit1.properties
Run a full test suite
steply --suite tests --target-env env/sit.properties
Project Folder Structure:
my-integration-testing-project/
├── env
│ ├── sit.properties
│ ├── uat.properties
│ ├── pre_prod.properties
│ └── github_host.properties
└── tests
├── validate_github_user_api.json
├── validate_create_user_api.json
└── validate_update_emplyee_api.json
TEST RESULTS:
├── target/
│ ├── logs
│ │ └── executions.log
│ ├── test-report.csv
│ ├── test-interactive-report.html
Testcase Example:
JSON
{
"name": "call_pcdp_api",
"url": "https://api.github.com/users/octocat",
"method": "GET",
"request": {
"headers": {
"Content-Type": "application/json"
}
},
"verify": {
"status": 200
}
}
or
YAML
- name: call_pcdp_api
url: https://api.github.com/users/octocat
method: GET
request:
headers:
Content-Type: application/json
verify:
status: 200
Exit Codes (for CI Workflow)
Steply returns(for the example above):
- 0 → HTTP 200 OK
- Non-zero → Any other response
This makes it easy to use in CI pipelines to determine build status.
Authentication
The Authorization header can be automatically populated using a token from an authentication server.
CLI Help
➜ steply -h
or
➜ steply --help
Reports & Logs
After execution, reports are generated in the "target/" folder:
- HTML interactive report
- CSV report
- Execution logs (see "target/logs/" folder)
Notes
--folderand--suitework the same way.--targetand--target-envwork the same way.- Short forms like
--targare also accepted.
Alternative to
- Postman
- Insomnia
- Karate
- PyRestTest
- Cucumber
but with modern, opensource, lightweight, secure and CLI appraoch, providing easily pluggable cloud integrations.
While the above tools are powerful, they are often heavy, proprietary, or tightly coupled to specific language ecosystems(such as Java, Groovy, Python etc).
This project :
- focuses on providing a open-source and collaborative developer/SDET experience
- provides easy/pluggable integrations (Kafka, S3, Postgres, and more)
JSON Schema for Test Scenario
A JSON Schema (Draft-07) for scenario files is published at schema/zerocode-scenario-schema.json and
pointed to from robots.txt at the project root. Use it to:
-
Validate scenarios from the CLI, e.g. with
ajv-cli:# Note: This is optional step, only do this if you have npx and ajv-cli already installed # npx: Runs npm package without global install npx ajv-cli validate -s schema/zerocode-scenario-schema.json -d core/src/test/resources/templates/example_scenario_1.json
Credits
Special thanks to all the authors and contributors of the zerocode-tdd JSON/YAML testing framework.
Uninstall
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/QABEES/steply/main/scripts/uninstall.sh | bash
This removes the steply launcher, all installed files, and the PATH entry from your shell profile.
Documentation
For detailed documentation and examples, visit here
As you are using the Steply CLI, you can ignore the Maven/Java sections in the documentation.