// FALLBACK k6 load-test script. // This static skeleton is only used when The Watcher agent fails to generate // a bespoke k6 script tailored to the application's detected HTTP endpoints. // When generation succeeds, the agent produces a custom script that replaces // this file in the scaffolded output repository. import http from 'k6/http'; import { check, sleep } from 'k6'; export const options = { scenarios: { load_test: { executor: 'ramping-vus', startVUs: 0, stages: [ { duration: '${{ values.k6_ramp_up | default("10s") }}', target: ${{ values.k6_virtual_users | default(10) }} }, { duration: '${{ values.k6_duration | default("30s") }}', target: ${{ values.k6_virtual_users | default(10) }} }, { duration: '5s', target: 0 }, ], }, }, thresholds: { http_req_duration: ['p(95)<500'], http_req_failed: ['rate<0.01'], }, }; const BASE_URL = `http://${{ values.frontend_service_name | default("frontend") }}.${{ values.destination_namespace }}.svc.cluster.local:${{ values.frontend_service_port | default(80) }}`; export default function () { const res = http.get(`${BASE_URL}${{ values.k6_target_path | default("/") }}`); check(res, { 'status is 200': (r) => r.status === 200, 'response time < 500ms': (r) => r.timings.duration < 500, }); sleep(0.5); }