From f7bd7690adb0bb30503b3002f567210e0e86ee36 Mon Sep 17 00:00:00 2001 From: demo-bot Date: Thu, 2 Apr 2026 13:11:32 +0000 Subject: [PATCH] feat(k6): add load test script (#5) --- k6/load-test.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 k6/load-test.js diff --git a/k6/load-test.js b/k6/load-test.js new file mode 100644 index 0000000..83623d3 --- /dev/null +++ b/k6/load-test.js @@ -0,0 +1,36 @@ +// 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: '10s', target: 10 }, + { duration: '30s', target: 10 }, + { duration: '5s', target: 0 }, + ], + }, + }, + thresholds: { + http_req_duration: ['p(95)<500'], + http_req_failed: ['rate<0.01'], + }, +}; + +const BASE_URL = `http://otel-demo.demo-apps.svc.cluster.local:80`; + +export default function () { + const res = http.get(`${BASE_URL}/`); + check(res, { + 'status is 200': (r) => r.status === 200, + 'response time < 500ms': (r) => r.timings.duration < 500, + }); + sleep(0.5); +}