geocrop-platform./apps/nextgen/tests/load/k6-sync-engine.js

35 lines
1.0 KiB
JavaScript

import http from 'k6/http';
import { check, sleep } from 'k6';
// k6 Load Test Configuration for NextGen Sync Engine & API
// SLA Target: 5,000 events/sec/shard
export const options = {
stages: [
{ duration: '30s', target: 50 }, // Ramp up to 50 VUs
{ duration: '1m', target: 200 }, // Sustain 200 VUs for high throughput testing
{ duration: '30s', target: 0 }, // Ramp down
],
thresholds: {
http_req_duration: ['p(95)<200'], // 95% of requests must complete within 200ms
http_req_failed: ['rate<0.01'], // Error rate must be under 1%
},
};
const BASE_URL = __ENV.TARGET_URL || 'http://localhost:3001';
export default function () {
// Test 1: Health check / SLA probe
const healthRes = http.get(`${BASE_URL}/api/health`);
check(healthRes, {
'health status is 200': (r) => r.status === 200,
});
// Test 2: Sync Engine metrics SLA probe
const metricsRes = http.get(`${BASE_URL}/api/metrics`);
check(metricsRes, {
'metrics status is 200': (r) => r.status === 200,
});
sleep(0.1);
}