Step is an open-source automation platform that unifies software automation across the entire DevOps lifecycle — from functional and load testing to RPA and monitoring — on a single, centralized orchestration layer.
Step focuses on the reuse of automation artifacts across teams, tools, and automation use cases. Instead of maintaining separate codebases for tests, load scenarios, and monitoring probes, Step lets you write automation once and run it in any context:
Step integrates with existing automation tools and DevOps platforms rather than replacing them:
For a full introduction see the Step knowledgebase.
The quickest path is to get a free SaaS instance and follow one of the getting started tutorials.
To run Step on your own infrastructure, follow the quick setup guide or download the latest release from step-distribution/releases.
Step is a distributed platform built around a controller – agent model:
┌──────────────┐ REST / WebSocket ┌─────────────────────┐
│ Browser / │ ───────────────────► │ Controller │
│ Step CLI │ │ (orchestration, │
└──────────────┘ │ plans, reports) │
└──────────┬──────────┘
│ step-grid protocol
┌──────────▼──────────┐
│ Agent Pool │
│ (keyword execution)│
└─────────────────────┘
- The Controller stores and executes automation plans, schedules runs, manages resources, and serves the web UI.
- Agents are lightweight worker processes that execute Keywords on remote machines and report results back in real time.
- Keywords are the atomic units of automation that the engine discovers, routes, and calls remotely.
See Architecture overview in the knowledgebase for a deeper dive.
| Concept | Description | Learn more |
|---|---|---|
| Keyword | An executable unit of automation implemented following one of three approaches: code-based (Java, .NET, JavaScript), tool-native (Cypress, K6, JMeter, SoapUI, …), or command-based (shell/CLI invocations) | Keywords |
| Plan | A test or automation scenario composed of Keywords and control-flow artefacts | Plans |
| Automation Package | An executable and deployable unit (Archive + descriptor) that bundles Step entities (Keywords, Plans,...) | Automation Packages |
| Agent / Token | A worker process exposing a pool of execution slots (tokens) to the controller | Agents |
| Scheduler | Triggers plan executions on a cron schedule | Scheduler |
This repository contains the Step backend, organized as a Maven multi-module build:
| Module | Description |
|---|---|
step-commons |
Shared utilities used across the platform |
step-constants |
Platform-wide constants and enumerations |
step-core-model |
Core domain model: plans, artefacts, functions, resources |
step-core |
Artefact lifecycle, expression evaluation, parameter resolution, security |
step-plans |
Execution engine, Plan parsing, YAML support, and control-flow artefacts (loops, conditionals, sequences) |
step-automation-packages |
Automation package management with YAML, JUnit, and JUnit5 support |
step-functions |
Keyword execution layer: handlers, routing, and package management |
step-functions-plugins |
Plugin extensions for the function execution layer |
step-agent |
Agent process that executes Keywords on worker nodes |
step-controller |
Central orchestration server: REST API, scheduling, reporting, multi-tenancy |
step-controller-plugins |
Controller plugin infrastructure |
step-repositories |
Repository abstraction for external plan storage and retrieval |
step-json-schema |
JSON schema support for Step entity validation |
step-livereporting |
Real-time execution monitoring and streaming |
step-maven-plugin |
Maven plugin for CI/CD integration |
step-cli |
Command-line interface for triggering and managing executions |
step-libs-maven-client |
Maven client for dynamic dependency resolution at runtime |
step-ide |
Step plugins dedicated to the Step IDE — a standalone Step instance for local use by developers and testers to design plans and validate executions locally |
This repository is the core backend of a broader set of open-source repositories:
| Repository | Description |
|---|---|
| step-api | The Java API for writing Keywords (@Keyword, AbstractKeyword) — the only dependency needed to build keyword libraries |
| step-grid | The distributed execution grid: agent lifecycle, token management, and controller–agent communication |
| step-framework | Reusable infrastructure components: persistence, REST server, collections, and time series |
| step-frontend | The Angular-based web UI |
| step-distribution | Release bundles and Docker images |
After cloning, configure the included git hooks (requires git ≥ 2.9):
git config core.hooksPath git-hooksgit clone https://github.com/exense/step.git
cd step
mvn clean installTo skip tests:
mvn clean install -DskipTests- Java 11 or later
- Maven 3.6 or later
- MongoDB or PostgreSQL (for persistence — see installation guide)
| Resource | URL |
|---|---|
| Documentation | step.dev/knowledgebase |
| Official website | step.dev |
| SaaS portal | portal.stepcloud.ch |
| Releases | step-distribution/releases |
Contributions are welcome. Please open an issue to discuss a bug or feature request before submitting a pull request. All submissions are expected to include appropriate test coverage.
This project is licensed under the GNU Affero General Public License v3.0.