Test Everything
The only testing framework that does integration, E2E, and visual regression testing without changing your code.
Get startedWhy Dokkimi
Unit tests mock away the interesting parts. Staging environments drift from reality. Dokkimi gives you production-like environments on demand.
E2E UI Testing
Drive a real browser alongside your services. Click, type, navigate, and assert on what the user sees.
Visual Regression
Screenshot any step, diff against baselines. Catch visual regressions before they ship.
Traffic Interception
Capture every HTTP call between services. Assert on exactly what was sent and received.
Mock External APIs
Intercept calls to Stripe, Auth0, Twilio, and more. Return controlled responses. No test accounts needed.
Isolated Environments
Every test run gets its own namespace with dedicated services, databases, and browser. No shared state.
Database Seeding & Queries
Seed Postgres, MySQL, MongoDB, or Redis before tests. Query directly in assertions to verify writes.
AI Agent Integrated
Dokkimi definitions are designed for coding agents. Let Claude, Cursor, or Copilot write and debug your tests.
Zero Code Changes
Your services run unmodified. Dokkimi wires up sidecars, routing, DNS, browser, and cleanup.
How it works
Define your services and tests in simple YAML. Dokkimi does the rest.
# .dokkimi/blog/definitions/publish-post.yaml
name: author-publish-flow
items:
- $ref: ../shared/web-app.yaml
- $ref: ../shared/api-gateway.yaml
- $ref: ../shared/post-service.yaml
- $ref: ../shared/postgres-db.yaml
- $ref: ../shared/mock-auth0-jwks.yaml
steps:
# Drive the browser through the publish flow
- action:
type: ui
url: http://web-app:3000/posts/new
subSteps:
- action: fill
selector: '#title'
value: 'My new post'
- action: click
selector: '[data-testid="publish-btn"]'
- action: waitForSelector
selector: '[data-testid="success-toast"]'
- action: screenshot
name: post-published
assertions:
# Verify the API call went through correctly
- target: httpCall
match:
origin: web-app
method: POST
url: api-gateway/v1/posts
assertions:
- type: response.statusCode
operator: eq
value: 201
# Confirm it was persisted
- action:
type: database
service: postgres-db
query: "SELECT title FROM posts WHERE title = 'My new post'"
assertions:
- target: self
assertions:
- type: response.body
path: $.rows.length
operator: eq
value: 1 Declare services, databases, mocks, and UI flows in YAML. Reference shared fragments with $ref.
dokkimi run deploys everything into an isolated K8s namespace — services, database, browser, and all.
Assert on HTTP traffic between services, query the database directly, and diff screenshots against baselines for visual regression detection.
Get Started
Install Dokkimi and run your first test in minutes.
Learn More
Dive into the docs or follow a step-by-step tutorial.
Pricing
Free to run locally. Cloud CI/CD pricing coming soon.
Local
- Run on your machine with Docker + Kubernetes
- Unlimited test definitions and runs
- E2E UI testing with headless Chromium
- Visual regression with screenshot diffing
- Traffic interception, mocks, and database assertions
- CLI + AI agent integration
Cloud CI/CD
- Run tests in your CI/CD pipeline
- GitHub Actions, GitLab CI, and more
- Ephemeral cloud sandboxes
- Parallel test execution at scale
- Team dashboards and history
Stay in the loop
New features, tutorials, and tips every two weeks. No spam.