import http from 'k6/http'; import { check, sleep } from 'k6'; const BASE_URL = __ENV.BASE_URL || 'http://localhost:8080'; export let options = { scenarios: { baseline: { executor: 'constant-vus', vus: 10, duration: '30s', startTime: '0s', }, stress_test: { executor: 'ramping-vus', startVUs: 10, stages: [ { duration: '1m', target: 50 }, { duration: '2m', target: 100 }, { duration: '1m', target: 50 }, { duration: '1m', target: 10 } ], startTime: '0s', }, spike_test: { executor: 'ramping-vus', startVUs: 10, stages: [ { duration: '30s', target: 10 }, { duration: '10s', target: 200 }, { duration: '30s', target: 10 } ], startTime: '0s', }, }, thresholds: { http_req_duration: ['p(95)<500'], http_req_failed: ['rate<0.05'], }, }; export default function () { let response = http.get(`${BASE_URL}/actuator/health`); check(response, { 'status is 200': (r) => r.status === 200, 'response time < 500ms': (r) => r.timings.duration < 500, 'has UP status': (r) => r.json('status') === 'UP', }); sleep(1); } export function teardown() { console.log('Performance test completed'); }