Performance Testing Framework

Status: Planning
Category: HIP (Integration Platform)
Created: 2026-02-04

Overview

Ad-hoc load testing framework for the API federation platform, enabling self-service performance testing across sandbox environments.

  • Decision Record - Complete architectural decisions and implementation plan

Key Decisions

  • Tool: k6 (over Gatling, Locust, JMeter)
  • Deployment: K8s Jobs on separate test cluster (over operator or GitLab Runner)
  • Architecture: GitLab CI triggers K8s Jobs on test cluster → Jobs target SUT cluster
  • Network Design: Separate test cluster avoids GitLab→SUT network bottleneck
  • Test Generation: GitLab CI with API catalog integration
  • Execution: Distributed load via Job completions parameter
  • Target: Separate sandbox-sut environment
  • Observability: InfluxDB + Grafana + GitLab reporting

Deployment Approach Comparison

The decision record includes a comprehensive comparison matrix evaluating 6 approaches:

  • k6 + Operator | k6 + K8s Job ⭐ | k6 + GitLab Runner
  • Gatling + Operator | Gatling + K8s Job | Gatling + GitLab Runner

Comparison is split into:

  • Priority Concerns: Quality of reporting, ease of reporting, time to first test, time to MVP, maturity, ease of use, ease of horizontal scaling
  • Other Concerns: Setup complexity, resource isolation, network policies, observability, etc.

Our Choice: k6 + K8s Job provides the best balance of speed (2-4 hours to first test), quality reporting, and avoids network bottlenecks.

Key Advantage: We already have Grafana deployed for SUT monitoring. k6’s built-in InfluxDB export (--out influxdb=...) connects to existing Grafana in 30 minutes with official dashboards, providing unified observability for load tests + SUT metrics. Gatling would require plugin setup (2-3 hours) for similar integration.

Implementation Phases

  1. Phase 1: Foundation (1-2 weeks) - Basic k6 operator + GitLab CI
  2. Phase 2: Self-Service (1-2 weeks) - Catalog-driven test generation
  3. Phase 3: Observability (1 week) - Metrics and dashboards
  4. Phase 4: Advanced (2-3 weeks) - Multi-scenario, regression detection

Project Structure

.ai/projects/hip/perf-testing/
├── README.md              # This file
├── metadata.json          # Project metadata
└── decision-record.md     # Complete decision documentation

Next Actions

  1. Review and approve decision record
  2. Answer open questions (see decision record)
  3. Create implementation project (BMAD or Codev format)
  4. Begin Phase 1 implementation

Tags

performance load-testing k6 gitlab-ci argocd sandbox api-federation