Skip to content

exense/step

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,666 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Step

License GitHub Release

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.

What is Step?

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:

Illustration of Step's reusability

Step integrates with existing automation tools and DevOps platforms rather than replacing them:

Illustration of Step's integrations

For a full introduction see the Step knowledgebase.

Getting Started

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.

Architecture

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.

Key Concepts

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

Modules

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

Step Ecosystem

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

Developer Setup

Git hooks

After cloning, configure the included git hooks (requires git ≥ 2.9):

git config core.hooksPath git-hooks

Build

git clone https://github.com/exense/step.git
cd step
mvn clean install

To skip tests:

mvn clean install -DskipTests

Requirements

  • Java 11 or later
  • Maven 3.6 or later
  • MongoDB or PostgreSQL (for persistence — see installation guide)

Important Links

Resource URL
Documentation step.dev/knowledgebase
Official website step.dev
SaaS portal portal.stepcloud.ch
Releases step-distribution/releases

Contributing

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.

License

This project is licensed under the GNU Affero General Public License v3.0.

About

Scalable Test Execution Platform

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors