- 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 |
||
|---|---|---|
| .. | ||
| backend | ||
| chat | ||
| stream | ||
| config.js | ||
| README.md | ||
| smoke.js | ||
Load Tests (k6)
Tests de charge pour la plateforme Veza. Audit 3.2.
Prérequis
- k6 installé (
brew install k6ousudo 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