Test Everything

The only testing framework that does integration, E2E, and visual regression testing without changing your code.

Get started

Why 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
1
Define

Declare services, databases, mocks, and UI flows in YAML. Reference shared fragments with $ref.

2
Run

dokkimi run deploys everything into an isolated K8s namespace — services, database, browser, and all.

3
Assert everywhere

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.

brew install dokkimi/tap/dokkimi
or
npm install -g dokkimi

Pricing

Free to run locally. Cloud CI/CD pricing coming soon.

Local

Free
  • 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
Get started

Stay in the loop

New features, tutorials, and tips every two weeks. No spam.