veza/loadtests
senke b103a09a25 chore: consolidate CI, E2E, backend and frontend updates
- CI: workflows updates (cd, ci), remove playwright.yml
- E2E: global-setup, auth/playlists/profile specs
- Remove playwright-report and test-results artifacts from tracking
- Backend: auth, handlers, services, workers, migrations
- Frontend: components, features, vite config
- Add e2e-results.json to gitignore
- Docs: REMEDIATION_PROGRESS, audit archive
- Rust: chat-server, stream-server updates
2026-02-17 16:43:21 +01:00
..
backend feat(loadtests): audit 3.2 — tests de charge k6 complets 2026-02-15 15:22:48 +01:00
chat feat(loadtests): audit 3.2 — tests de charge k6 complets 2026-02-15 15:22:48 +01:00
stream chore: consolidate CI, E2E, backend and frontend updates 2026-02-17 16:43:21 +01:00
config.js feat(loadtests): audit 3.2 — tests de charge k6 complets 2026-02-15 15:22:48 +01:00
README.md feat(loadtests): audit 3.2 — tests de charge k6 complets 2026-02-15 15:22:48 +01:00
smoke.js feat(loadtests): audit 3.2 — tests de charge k6 complets 2026-02-15 15:22:48 +01:00

Load Tests (k6)

Tests de charge pour la plateforme Veza. Audit 3.2.

Prérequis

  • k6 installé (brew install k6 ou sudo apt install k6)

Variables d'environnement

Variable Défaut Description
BASE_URL http://localhost:8080 URL de l'API backend
API_ORIGIN idem Alias pour BASE_URL
STREAM_ORIGIN http://localhost:8082 URL du stream server
CHAT_ORIGIN ws://localhost:8081 URL WebSocket du chat server
AUTH_TOKEN (vide) JWT pour tests upload (optionnel)

Exécution locale

Smoke test (validation rapide, ~30s)

k6 run loadtests/smoke.js

Backend API

# Health, readyz, status
k6 run loadtests/backend/health.js

# Auth (register, login, /me, refresh)
k6 run loadtests/backend/auth.js

# Tracks (liste, search, détail)
k6 run loadtests/backend/tracks.js

# Uploads (requiert AUTH_TOKEN)
AUTH_TOKEN=xxx k6 run loadtests/backend/uploads.js

# Playlists
k6 run loadtests/backend/playlists.js

# Marketplace
k6 run loadtests/backend/marketplace.js

# Scénario combiné (health, auth, tracks, playlists, marketplace)
k6 run loadtests/backend/full.js

Stream server

# Health, healthz, readyz (stream server doit tourner)
k6 run loadtests/stream/http.js

Chat WebSocket

# Backend API + Chat server requis
k6 run loadtests/chat/websocket.js

Docker

docker run --rm -i --network=host \
  -v $(pwd)/loadtests:/scripts \
  -e BASE_URL=http://localhost:8080 \
  grafana/k6 run /scripts/smoke.js

CI

Le workflow .github/workflows/load-test-nightly.yml s'exécute :

  • Schedule : 2h UTC chaque nuit
  • Manual : workflow_dispatch

Il lance smoke + backend full, puis uploade les résultats en artifact.

Structure

loadtests/
├── README.md
├── config.js
├── smoke.js
├── backend/
│   ├── health.js
│   ├── auth.js
│   ├── tracks.js
│   ├── uploads.js
│   ├── playlists.js
│   ├── marketplace.js
│   └── full.js
├── stream/
│   └── http.js
└── chat/
    └── websocket.js