Declarative E2E testing.
Declare. Execute. Analyse.
E2Engine provides a structured, declarative model for test environments, service interactions, execution, and verification.
The problem
Testing one service is easy.
Testing the system around it isn't.
Real services depend on APIs, databases, asynchronous execution, and other services. Meaningful end-to-end tests need to control those boundaries and verify what happens across them.
The usual approach
Distributed tests become infrastructure code.
A meaningful system test often grows into a collection of containers, mock servers, fixtures, scripts, test helpers, and custom orchestration. The behavior being tested becomes distributed across the test infrastructure itself.
The E2Engine approach
Make the distributed test system explicit.
Describe the environment, behavior, and expectations using a structured model. E2Engine takes care of turning that description into an executable system test.
01
Describe the environment
Make the test system explicit.
Define the services involved in the test and choose which dependencies are real and which E2Engine should control.
kind: Environment
version: 1.0.0
name: payment
spec:
services:
- id: fraud
kind: http
mode: mock
- id: account
kind: grpc
mode: mock02
Describe the behavior
Express intent, not test infrastructure.
Describe requests, fixtures, and expected interactions using a structured, declarative test specification.
03
Execute
Run the system test.
$ e2engine run test payment.yml04
Verify the system
Assert what happened across service boundaries.
✓ Request succeeded
✓ Fraud service called
✓ Account service called
✓ Expected request body
✓ Expected call count
Test passedRealistic example
See the complete payment flow.
Explore an end-to-end example with a real service, HTTP and gRPC dependencies, mocks, fixtures, and interaction assertions.
Built for automation
Structured for developers. Structured for tools.
E2Engine represents test environments, behavior, execution, and results as explicit structures rather than hiding them inside test infrastructure.
The same model that makes distributed tests easier to understand also makes them easier to create, execute, inspect, and reason about programmatically.
Why E2Engine?
Use the right testing abstraction.
E2Engine doesn't replace every testing tool. It provides a different abstraction for tests that need to control and verify behavior across service boundaries.
E2Engine
