Files
carmanagement/scripts/load/booking-smoke.k6.js
T
root 8fc88ffc14
Build & Push / Pipeline Tests (push) Failing after 59s
Build & Push / Build & Push Docker Image (push) Has been skipped
Test / Type Check (all packages) (push) Failing after 51s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Carplace Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped
fix production issues
2026-08-12 16:48:41 -04:00

38 lines
1.1 KiB
JavaScript

/**
* Optional k6 scenario for authenticated booking smoke under load.
* Install k6 separately: https://k6.io/docs/get-started/installation/
*
* k6 run -e API_BASE=https://staging.example.com -e TOKEN=... scripts/load/booking-smoke.k6.js
*/
import http from 'k6/http'
import { check, sleep } from 'k6'
export const options = {
vus: Number(__ENV.VUS || 5),
duration: __ENV.DURATION || '2m',
thresholds: {
http_req_failed: ['rate<0.05'],
http_req_duration: ['p(95)<2000'],
},
}
const base = (__ENV.API_BASE || 'http://127.0.0.1:4000').replace(/\/$/, '')
const token = __ENV.TOKEN || ''
export default function () {
const health = http.get(`${base}/health`)
check(health, { 'health 200': (r) => r.status === 200 })
const ready = http.get(`${base}/ready`)
check(ready, { 'ready 200': (r) => r.status === 200 })
if (token) {
const vehicles = http.get(`${base}/api/v1/vehicles?page=1&pageSize=10`, {
headers: { Authorization: `Bearer ${token}` },
})
check(vehicles, { 'vehicles ok': (r) => r.status === 200 || r.status === 401 })
}
sleep(1)
}