1.6 KiB
1.6 KiB
Performance-Baseline fuer Kernendpunkte
Ziel
Umsetzung der in Issue #25 definierten Ziele:
- Zielwerte fuer /health, /auth/login, /requests GET definieren.
- Lightweight-Benchmark-Setup dokumentieren.
- Schwellenwert fuer Regressionswarnung festlegen.
Baseline-Werte
| Endpunkt | Zielzeit (ms) | Maximalzeit (ms) |
|---|---|---|
| /health | 50 | 100 |
| /auth/login | 200 | 400 |
| /requests GET | 300 | 600 |
Benchmark-Setup
Lokale Tests
Lokale Performance-Tests werden mit curl und time durchgeführt:
time curl -s http://localhost:3000/health
Docker-Integration
Ein Docker-Container wird verwendet, um die Tests in einer produktähnlichen Umgebung durchzuführen.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Benchmark-Tool
Ein einfaches Node.js-Skript zur Durchführung der Tests:
const { exec } = require('child_process');
const fs = require('fs');
const endpoints = [
'/health',
'/auth/login',
'/requests'
];
endpoints.forEach(endpoint => {
const start = Date.now();
exec(`curl -s http://localhost:3000${endpoint}`, (error, stdout, stderr) => {
const end = Date.now();
console.log(`${endpoint}: ${end - start}ms`);
});
});
Regressionswarnung
Wenn eine Endpunkt-Zeit um mehr als 20% über der Zielzeit liegt, wird eine Warnung ausgelöst.