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
38 lines
1.1 KiB
JavaScript
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)
|
|
}
|