Skip to main content

Kamikaze Pods

Kamikaze Pods are Jataka’s intelligent UI testing engine. They run in isolated Kubernetes environments and use Vision AI to automatically locate UI elements, making tests self-healing and maintenance-free.

Architecture Overview

Isolated Execution

Each test runs in a fresh Kubernetes pod with no data leakage between tests.

Vision AI

Computer vision automatically locates UI elements without brittle selectors.

Self-Healing

Tests automatically adapt to UI changes without manual updates.

How Kamikaze Pods Work

1. Pod Spin-up

When a test is triggered, Jataka spins up a fresh Kubernetes pod:
apiVersion: v1
kind: Pod
metadata:
  name: jataka-test-pod-abc123
spec:
  containers:
  - name: playwright
    image: jataka/playwright:v2.1.0
    resources:
      limits:
        cpu: "2"
        memory: "4Gi"
    env:
      - name: SF_LOGIN_URL
        value: "https://test.salesforce.com"

2. Vision AI Element Location

Instead of brittle CSS selectors, Kamikaze uses Vision AI:
// Traditional brittle approach
await page.click('[data-testid="save-button"]');

// Jataka Vision AI approach
await page.click({
  vision: "red button with 'Save' text in top right"
});

3. Self-Healing Logic

When UI changes occur, Kamikaze automatically adapts:
1
Vision AI scans the page for the target element using multiple criteria
2
If primary selector fails, fallback strategies are tried automatically
3
Test continues without human intervention, and the new selector is learned

Vision AI Capabilities

Element Recognition

Kamikaze can identify elements by:
  • Visual appearance: Color, size, position
  • Text content: Labels, placeholders, values
  • Context: Surrounding elements and layout
  • Functionality: Buttons, inputs, links, dropdowns

Example: Complex Element Location

// Find the "Create Opportunity" button
await page.click({
  vision: {
    text: "Create Opportunity",
    type: "button",
    color: "blue",
    position: "top-right"
  }
});

Multi-language Support

Vision AI works across languages:
// Works in any language
await page.click({
  vision: "primary action button with positive text"  // "Create", "Crear", "Créer", etc.
});

Test Configuration

Basic Test Definition

# jataka-tests/ui/create-opportunity.yml
name: "Create Opportunity Test"
url: "/lightning/o/Opportunity/list"
steps:
  - action: click
    target:
      vision: "New button"
  - action: fill
    target:
      vision: "Opportunity Name input"
    value: "Test Opportunity {{timestamp}}"
  - action: click
    target:
      vision: "Save button"
  - action: verify
    target:
      vision: "Success message"

Advanced Test Scenarios

name: "Complex Sales Process"
flows:
  - name: "Create Account and Opportunity"
    steps:
      - action: navigate
        url: "/lightning/o/Account/list"
      - action: click
        target: { vision: "New Account button" }
      - action: fill
        target: { vision: "Account Name input" }
        value: "Test Account {{uuid}}"
      - action: click
        target: { vision: "Save button" }
      - action: wait
        condition: { vision: "Related tab" }
      - action: click
        target: { vision: "Opportunities related list" }
      - action: click
        target: { vision: "New Opportunity button" }

Performance Optimization

Parallel Execution

Kamikaze can run multiple tests in parallel:
jataka test --engine kamikaze --parallel 5

Smart Caching

Test data and screenshots are cached between runs:
cache:
  screenshots: true
  test_data: true
  session_state: true

Resource Management

Pods are automatically scaled based on test load:
scaling:
  min_pods: 2
  max_pods: 10
  target_cpu_utilization: 70

Integration Examples

GitHub Actions

- name: Run Kamikaze UI Tests
  run: |
    jataka test \
      --engine kamikaze \
      --parallel 3 \
      --fail-on-critical \
      --report-format junit \
      --output-file test-results.xml

Slack Integration

Get test results directly in Slack:
integrations:
  slack:
    webhook: https://hooks.slack.com/...
    notifications:
      test_failure: "#qa-alerts"
      flaky_tests: "#dev-team"
      performance_issues: "#performance"

Best Practices

Troubleshooting

Common Issue: “Vision AI cannot locate element”Solution:
  1. Check if the element is visible in the viewport
  2. Try more specific vision descriptors
  3. Use the --debug-vision flag to see what Vision AI is detecting
Performance Tip: Use --headless mode for faster test execution in CI/CD environments.

Advanced Features

Custom Vision Models

Train custom vision models for your specific UI:
jataka vision train --dataset ./ui-screenshots --model my-company-ui

A/B Testing Support

Test UI variations automatically:
ab_test:
  variants:
    - name: "control"
      url: "/ui-version-a"
    - name: "variant"
      url: "/ui-version-b"
  success_metric: "conversion_rate"

Accessibility Testing

Kamikaze includes accessibility checks:
accessibility:
  wcag_level: "AA"
  check_color_contrast: true
  check_screen_reader: true
  check_keyboard_navigation: true

What’s Next?

Try it now: Run jataka test --engine kamikaze --demo to see Vision AI in action!