{"ok":true,"filename":"grocery-checkout-pack.js","contentType":"application/javascript; charset=utf-8","content":"// PerfOps k6 Scenario Pack: High-Concurrency Checkout & Cart Suite · 4 Profiles (v2.4)\nimport http from 'k6/http';\nimport { check, group, sleep } from 'k6';\n\nexport const options = {\n  scenarios: {\n    load_profile: {\n      executor: 'ramping-vus',\n      startVUs: 20,\n      stages: [\n        { duration: '3m', target: 300 },\n        { duration: '10m', target: 600 },\n        { duration: '2m', target: 0 },\n      ],\n    },\n  },\n  thresholds: {\n    http_req_duration: ['p(95)<250', 'p(99)<500'],\n    http_req_failed: ['rate<0.005'],\n  },\n};\n\nconst BASE_URL = __ENV.BASE_URL || 'https://api.example.com';\n\nexport default function () {\n  group('checkout-api critical flow', () => {\n    const res = http.get(`${BASE_URL}/v1/health`);\n    check(res, {\n      'status is 200': (r) => r.status === 200,\n      'p95 budget respected': (r) => r.timings.duration < 250,\n    });\n  });\n  sleep(0.5);\n}\n","sloYaml":"# checkout-slo-v3.yaml\nservice: checkout-api\nenvironment: prod-eu\npolicy: checkout-slo-v3.yaml\nwindow: 15m\n\nobjectives:\n  - metric: http_req_duration:p(95)\n    target: 250       # ms — hard NO-GO threshold\n    warn:   220       # ms — CONDITIONAL_GO threshold\n  - metric: http_req_duration:p(99)\n    target: 500       # ms\n    warn:   450       # ms\n  - metric: http_req_failed:rate\n    target: 0.50      # % — max 0.5% error rate\n    warn:   0.20      # %\n  - metric: http_reqs:rate\n    target: 1000      # req/s minimum throughput\n  - metric: cpu_saturation:max\n    target: 80        # % peak saturation\n    warn:   75        # %\n","k6Summary":{"http_req_duration:p(95)":184,"http_req_duration:p(99)":362,"http_req_failed:rate":0.0012,"http_reqs:rate":1240,"cpu_saturation:max":66,"vus":600,"duration":"15m","commit":"9f3c2a1","branch":"release/2026.04.3"},"system":"checkout-api"}