Performance testing
This repository includes a repeatable load harness for concurrent query execution, pagination, and CSV export.
k6 workload script
- Script:
scripts/perf/query-load.k6.js - Target behavior:
- login
- submit query
- poll status
- fetch result page
- trigger CSV export
Run
k6 run \
-e BASE_URL=http://localhost:3000 \
-e DWARVENPICK_USER=admin \
-e DWARVENPICK_PASSWORD=Admin1234! \
-e DATASOURCE_ID=postgresql-core \
-e SQL='SELECT 1 AS value;' \
-e VUS=10 \
-e DURATION=2m \
scripts/perf/query-load.k6.js
Output to capture
http_req_durationp50/p95/p99http_req_failederror rate- request rate (
http_reqs) - backend metrics from
/actuator/prometheusduring the run:dwarvenpick_query_activedwarvenpick_query_execution_totaldwarvenpick_query_duration_secondsdwarvenpick_query_export_attempts_totaldwarvenpick_pool_active
Reporting template
- Environment: local/dev/stage
- Workload: VUs + duration + query mix
- Latency: p50/p95/p99
- Error rate: %
- Notable bottlenecks and suggested mitigations